KR20080092481A - 알림 전달 아키텍처를 위한 방법 및 시스템 - Google Patents

알림 전달 아키텍처를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20080092481A
KR20080092481A KR1020087023608A KR20087023608A KR20080092481A KR 20080092481 A KR20080092481 A KR 20080092481A KR 1020087023608 A KR1020087023608 A KR 1020087023608A KR 20087023608 A KR20087023608 A KR 20087023608A KR 20080092481 A KR20080092481 A KR 20080092481A
Authority
KR
South Korea
Prior art keywords
content
user
notification message
previously stored
notification
Prior art date
Application number
KR1020087023608A
Other languages
English (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 KR20080092481A publication Critical patent/KR20080092481A/ko

Links

Images

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/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4755End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for defining user preferences, e.g. favourite actors or genre
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4786Supplemental services, e.g. displaying phone caller identification, shopping application e-mailing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4882Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

하나 이상의 포맷으로 이벤트 기반 피드 또는 시간 기반 피드로서 수신될 수 있는 콘텐츠에 기초하여 알림 메시지를 제공하기 위한 아키텍처가 개시되어 있다. 이 아키텍처는 상기 콘텐츠를 미리 정해진 데이터 구조로 정규화하고, 선택된 특징들에 따라서 상기 콘텐츠를 인덱싱하여 다량의 콘텐츠를 처리하기 위한 데이터 수집 처리 모듈(103)을 포함한다. 매칭 엔진(110)은 사용자 쿼리들을 이용하여, 상기 이벤트 기반 콘텐츠를 선택된 콘텐츠와 관련된 알림 메시지들을 수신하는 것에 관심을 표시한 하나 이상의 사용자들과 관련시킨다. 이 매칭 엔진은 또한 대응하는 알림 메시지들을 발생시킨다. 폴러(120)는 사용자들을 대신해서 소정의 주기로 콘텐츠를 페치하고 대응하는 알림 메시지를 발생시킨다. 전달 인터페이스(130)는 어느 알림 메시지들이 즉시 송신되어야 할지 그리고 어느 알림 메시지들이 나중의 전달을 위해 스케줄되어야 할지를 판정한다. 이 아키텍처는 범위성(scalability) 및 백업을 위하여 미러링된다(158).
Figure P1020087023608
알림 전달 아키텍처, 이벤트 기반 피드, 시간 기반 피드, 쿼리

Description

알림 전달 아키텍처를 위한 방법 및 시스템{METHOD AND SYSTEM FOR ALERT DELIVERY ARCHITECTURE}
본 발명은 일반적으로 메시징에 관한 것으로, 보다 구체적으로는, 네트워크를 통한 알림의 전달을 가능케 하는 것에 관한 것이다.
[관련 출원들에의 상호 참조]
본 특허 출원은 2003년 6월 13일에 출원된 미국 가출원 번호 60/478,401의 우선권을 주장하며, 이에 35 U.S.C 119(e)의 규정에 따라 상기 최초 출원일의 이익을 주장하는 바이다.
일부 서비스들이 주식 시세(stock quotes)와 같은 전문화된 콘텐츠(specialized content)에 대한 알림을 사용자들에게 제공해왔다. 이들 알림 서비스들은 일반적으로 특정 서비스에 등록된 사용자들에게 단일 주제(single topic)에 대한 콘텐츠를 제공한다. 다수의 주제에 대한 알림을 얻기 위하여, 사용자는 일반적으로 다수의 서비스들에 등록한다.
이하에서, 본 명세서의 일부를 형성하고 본 발명이 실시될 수 있는 특정한 모범적인 실시예들을 예시적으로 도시하는 첨부 도면을 참조하여 본 발명을 보다 상세히 설명한다. 그러나, 이 발명은 여러 다른 형태로 구현될 수 있으므로 여기에서 제시된 실시예들에 제한되는 것으로 해석되어서는 안 되고, 오히려, 이들 실시예들은 이 개시 내용이 철저하고 완전하도록, 그리고 숙련된 당업자들에게 발명의 범위를 충분히 전달하도록 제공되어 있다. 여럿 가운데서도 특히, 본 발명은 방법들 또는 장치들로서 구현될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 실시예, 또는 전적으로 소프트웨어 실시예 또는 소프트웨어와 하드웨어 특징들을 결합한 실시예의 형태를 취할 수 있다. 그러므로, 이하의 상세한 설명은 제한적인 의미로 받아들여져서는 안 될 것이다.
명세서 전반에 걸쳐서, "접속"(connected)이라는 용어는, 하등의 중간 매개 장치들 또는 컴포넌트들이 없이, 접속되어 있는 것들 간의 직접 접속을 의미한다. "결합"(coupled)이라는 용어는, 접속되어 있는 것들 간의 직접 접속, 또는 하나 이상의 수동 또는 능동 중간 매개 장치들 또는 컴포넌트들을 통한 간접 접속을 의미한다. 관사 "a", "an" 및 "the"의 의미는 복수의 참조들을 포함한다. 전치사 "in"의 의미는 "in" 및 "on"을 포함한다.
요약하면, 본 발명은 사용자가 관심사(interest)를 등록시킬 수 있게 하고 후속하여 그 등록된 관심사에 관하여 새로운 정보가 이용 가능하게 될 때 그 사용자에게 통지(알림)를 제공할 수 있게 하는 시스템 및 방법에 관한 것이다. 사용자가 관심을 가질 수 있는 콘텐츠 유형은 여러 가지가 있고, 그 콘텐츠 유형들은 주식(stock feeds), 뉴스 기사, 개인 광고(personal advertisements), 쇼핑 목록 가 격, 이미지, 검색 결과 등을 포함하지만, 이들에 제한되는 것은 아니다. 또한, 알림은 각종의 전달 방법들 중의 임의의 방법 또는 모든 방법으로 사용자에게 전달될 수 있는데, 그 전달 방법들은 인스턴트 메시징(IM), 이메일, 숏 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MMS), 음성 메시지 등을 포함하지만, 이들에 제한되는 것은 아니다.
어떤 경우에, 사용자는 소정의 등록된 관심사들에 대한 알림들은 모든 이용 가능한 방법에 의해 제공되도록 선택하고 다른 등록된 관심사들에 대한 다른 알림들은 단 하나의 방법에 의해서만 제공되도록 선택할 수 있다. 게다가, 어떤 알림들은 비교적 즉시의 통지(relatively immediate notification)를 제공하는 푸시 방법(push method)으로 제공될 수 있다. 이 경우에, 본 발명은 저장된 연락 정보(contact information)를 이용하여 모든 선택된 전달 방법으로 사용자에게 알림을 전달할 것이다. 이와 대조적으로, 다른 알림들은 다른 등록된 관심사들에 관한 사용자들로부터의 요구에 응답하여 알림으로서 응답하는 풀 방법(pull method)으로 제공될 수 있다. 그 요구들은 또한 주기적인 알림을 제공하도록 미리 정해진 횟수로 스케줄될 수 있다.
네트워크 상의 어떤 네트워크 어드레스 변환(NAT) 장치 배후로부터 본 발명과 통신하는 사용자들을 위해, 풀 방법은 사용자의 풀 요구에 의해 설정된 접속을 이용하여 사용자에게 알림을 송신한다. 풀 알림이 얼마나 자주 제공되는가는 사용자가 본 발명의 풀 요구를 행하는 빈도에 의해 결정된다. 그러나, 푸시 방법은 NAT를 통하여 본 발명과 통신하지 않는 다른 사용자들을 위해, 긴급한 알림들보다 적게 제공하도록 선택된 시간 간격으로 제공될 수 있다.
알림의 히스토리(history of alerts)가 사용자에 대한 웹 페이지 상에 제공될 수 있다. 또한, 실질적으로 동일한 등록된 관심사들에 대한 알림들을 처리하기 위한 쿼리들(queries)이 결합되어 비교적 다수의 사용자들까지 본 발명의 범위 확장(scaling)을 가능케 할 수 있다. 범위성(scalability)을 더 가능케 하기 위하여, 등록된 관심사들에 대한 새로운 콘텐트 정보에 쿼리들의 부울(boolean) 사전 처리 및 사전 인덱싱이 적용될 수 있는데, 왜냐하면 그 새로운 콘텐츠 정보는 예컨대 확장성 마크업 언어 피드(XML feed)를 통하여 이용 가능하게 되기 때문이다. 다양한 정보를 포함하는 사용자 프로파일들이 또한 제공될 수 있는데, 그 정보는 등록된 관심사들에 대한 부울 쿼리, 전달 방법, 시간 스케줄 등을 포함하지만, 이들에 제한되는 것은 아니다.
도 1은 본 발명에 따른 모범적인 알림 아키텍처를 예시한다. 이 알림 아키텍처는 하나 이상의 소프트웨어 모듈들 및/또는 서버, 클라이언트 장치 등과 같은 하나 이상의 컴퓨팅 장치들로 구현될 수 있다. 이 컴퓨팅 장치들은 일반적으로 프로세서, 메모리, 통신 인터페이스, 및 입출력 인터페이스, 저장 장치, 및/또는 다른 종래의 컴퓨팅 컴포넌트들을 포함한다. 알림 처리 시스템(100a)은 소스 콘텐츠(101), 파트너 알림(102), 풀 콘텐츠(pull content)(122), 및/또는 클라이언트 장치들에 알림으로서 분배하기 위한 다른 콘텐츠 정보를 액세스한다. 소스 콘텐츠(101)는 개인 광고, 쇼핑 가격, 뉴스 기사 등과 같은 각종의 콘텐츠를 포함할 수 있다. 파트너 알림(102)은 주제별 서비스로부터 알림으로서 이미 제공될 수 있는 주식 시세, 경매 입찰 등과 같은 콘텐츠를 더 포함한다. 소스 콘텐츠(101) 및/또는 파트너 알림(102)은 푸시(push)된 및/또는 풀(pull)된 콘텐츠일 수 있다. 환언하여, 소스 콘텐츠(101) 및/또는 파트너 알림(102)은 이벤트 기반의 콘텐츠 피드(event based feeds of content) 및/또는 스케줄된 시간 기반의 콘텐츠 피드(scheduled time based feeds of content)일 수 있다. 하나 이상의 피드 수집 서버들(feed collection servers)(103)은 도 2 및 3과 관련하여 더 상세히 설명되는 바와 같이 콘텐츠를 수신하고 입력 처리를 수행한다. 즉시 처리되지 않는 콘텐츠의 경우, 수집 서버들(103)은 그 콘텐츠를 저장 서버들(104)에 송신한다.
하나 이상의 매칭 서버들(110)은 선택된 콘텐츠에 관한 알림들을 수신하는 것에 관심을 표시한 사용자들과 콘텐츠를 관련시킨다. 일반적으로, 매칭 서버 들(110)은 콘텐츠 소스가 사용자 요구와 이미 관련되어 있지 않은 콘텐츠를 푸시 입력할 때 이용된다. 하나 이상의 유형의 알림들을 수신하는 것에의 관심은 사용자 데이터베이스(115)에 저장되어 있는 사용자 프로파일들에 표시된다. 사용자 프로파일들은 사용자 ID(user identifiers), 원하는 알림 유형, 원하는 전달 방법, 및 다른 정보를 포함한다. 폴러(120)는 사용자를 대신하여 콘텐츠에 대한 요구들을 관리한다. 일반적으로, 폴러(120)는 콘텐츠 소스들로부터의 콘텐츠에의 액세스를 개시한다. 폴러(120)는 수집 서버들(103)에 콘텐츠를 푸시하지 않는 콘텐츠 소스들로부터의 어떤 독립적인 풀 콘텐츠(122)를 액세스할 수 있다.
하나 이상의 전달 서버들(130)이 매칭 서버들(110) 및 폴러(120)와 통신하고 있다. 전달 서버들(130)은 폴러(120)로부터의 풀 콘텐츠(122), 매칭 서버들(110)로부터의 푸시된 콘텐츠, 및 사용자 데이터베이스(115)로부터의 사용자 정보를 액세스한다. 전달 서버들(130)은 즉시(immediate) 및 사전 스케줄된(pre-scheduled) 전달을 위해 알림들의 분배를 우선 순위화(prioritize)하고 관리한다. 사전 스케줄된 알림들은 하나 이상의 저장 서버 세트들(132a-132n) 상에 저장된다. 알림들이 준비되고 전달될 때, 사용자 모니터(140)는 패턴들 및/또는 다른 통찰력을 얻기 위해 알림들의 흐름을 관찰(watch)한다. 모니터(140)는 또한 웹 사이트 탐색, 온라인 구매 등과 같은 사용자 행동들에 관한 정보를 추적 및/또는 액세스할 수 있다. 추적된 행동들은 또한 사용자 데이터베이스(115) 내의 사용자 프로파일들에 저장되어 있는 사용자 관심사들을 표시한다. 로거(logger)(142)는 개개의 사용자들, 알림 유형들, 및 다른 파라미터들과 관련된 데이터를 추적한다. 디버거(144) 는 알림 처리와 관련된 문제들을 해결(trouble shoot)하기 위해 이용된다. 알림이 전달되어야 할 때, 그것은 사용자의 선호 방법(들)에 의한 전달을 위해 하나 이상의 적당한 서버들에 발송(route)된다. 예를 들면, 이메일 알림들은 벌크 서버들(152)을 경유해 전달될 수 있다. 무선 모바일 장치들에의 알림들은 무선 서버들(154)을 경유하여 전달될 수 있다. 인스턴트 메시징 알림들은 인스턴트 메시징 서버들(156)을 경유해 전달될 수 있다. 각각의 알림은 일반적으로 네트워크(160)를 통하여 사용자 프로파일에 식별된 클라이언트 장치에 통신된다. 사용자는 그 알림이 퍼스널 컴퓨터(PC)(162), 모바일 단말기(164), 핸드헬드 컴퓨터(166), 및/또는 등등의 것 중 하나 이상의 것에 전달됨을 표시할 수 있다.
또한 하나 이상의 미러링된 알림 처리 시스템들(100b)과 통신하기 위해 미러 인터페이스(158)가 사용될 수 있다. 위에서 소개된 데이터 및 처리 동작들의 전부 또는 일부는 동일한 및/또는 상이한 위치들에서 병렬 처리를 위해 재현(reproduce)될 수 있다. 미러 인터페이스(158)는 중앙 통신 인터페이스를 포함하고 및/또는 위에서 논의된 각각의 서버들 내에 분산될 수 있어, 각각의 서버 유형이 미러링된 서버 유형들과 통신할 수 있다. 각각의 미러링된 알림 처리 시스템에서, 각각의 서버 유형의 동작들은 국부적으로 고유한 팩터들(locally unique factors)에 대해 개별화(customize)될 수 있다.
도 2는 도 1과 관련하여 설명된 아키텍처에 대응하는 기능 엘리먼트들 간의 관계 및 데이터 흐름을 예시하는 기능 블록도이다. 푸시된 또는 풀된 소스 콘텐츠(170)는 예를 들어 HTML(hypertext markup language) 문서로서, XML 문서로서, 텍스트 파일로서, 이메일 메시지로서, 인스턴트 메시지로서 등등을 포함하는 하나 이상의 형태로 수신된다. 필요에 따라, 수집 처리 모듈(172)이 수신된 콘텐츠에 대해 하나 이상의 사전 처리 동작들을 수행하여 수신되는 콘텐츠의 다양한 형태들을 정규화(normalize)한다. 정규화된 콘텐츠 문서들은 피드 저장소(feed storage)(104a)에서의 용이한 저장 및 검색을 위해 일반적으로 소스, 타임-스탬프, 콘텐츠 유형, 및/또는 다른 특징들에 의해 인덱싱되고, 피드 저장소는 또한 저장 디렉터리 경로에 기초하여 URL(universal resource locator)을 할당한다. URL은 나중의 검색을 위해 수집 처리 모듈(172)이 이용할 수 있게 된다. 수집 처리에 대해서는 도 3과 관련하여 더 상세히 설명된다.
관리 인터페이스(174)는 상태 획득, 검색, 콘텐츠 수동 입력 등과 같은 검토 및/또는 관리 기능들을 위해 수신된 데이터를 액세스하기 위해 이용 가능하다. 관리 인터페이스(174)는 또한 시스템이 적절히 동작하고 있음을 보증하기 위해 추적되는 테스트 콘텐츠의 하트비트 피드(heartbeat feeds)를 셋업하기 위해 이용될 수도 있다.
만일 콘텐츠가 주식 가격 소스와 같은 이벤트 기반 피드로부터 푸시 입력되었다면, 그 콘텐츠는 매칭 엔진(110a)에 중계된다. 이러한 중계 및/또는 시간 기반 피드와 같은 다른 통신들은 하나의 서버로부터 또 하나의 서버로 데이터가 복사되는 것을 가능케 하는 복제 피드(replicate feed)를 통하여 수행될 수 있다. 대안으로, 중계 및/또는 다른 통신들은 모든 의도된 수신자(recipients)에 의해 수신될 때까지 데이터가 브로드캐스트되는 것을 가능케 하는 데이터버스 피드를 통하여 수행될 수 있다. 매칭 엔진은 수신된 콘텐츠에 관하여 알림이 송신되어야 하는 사용자들을 판정한다. 매칭 엔진은 사용자 데이터베이스로부터의 사용자 프로파일 데이터(115a)를 액세스하여, 소망을 표시한, 또는 다른 방법으로 콘텐츠에 관한 알림을 수신하기로 선택한 사용자와 그 콘텐츠를 관련시킨다. 특히, 사용자 프로파일은, 교통 사건, 주식 시세 등과 같은, 사용자가 알림을 원하는 하나 이상의 콘텐츠 유형들을 표시한다. 사용자의 프로파일은 또한 AND, OR, NOT 등과 같은 하나 이상의 논리 연산자들을 포함하는 하나 이상의 부울 쿼리들(Boolean queries)을 표시한다. 사용자 프로파일 내의 샘플 부울 쿼리를 예시하면 다음과 같다.
STOCK AND (COMPANY AND PRICE > $100)
만일 착신되는 콘텐츠 유형이 주식 시세를 포함한다면, 매칭 엔진(110a)은 부울 쿼리를 적용하여 주식 시세 콘텐츠가 선택된 회사에 관한 정보를 포함하는지 그리고 가격이 $100보다 큰지 여부를 판정한다. 만일 주식 시세가 매칭 콘텐츠를 포함한다면, 매칭 엔진(110a)은 그 사용자를 그 매칭 콘텐츠에 관한 알림을 원하는 사용자들의 목록에 추가한다.
여러 다른 사용자들이 유사한 쿼리를 갖거나, 및/또는 착신되는 콘텐츠를 서로 다른 쿼리들과 매칭시킬 수 있다. 범위성(scalability)을 위한 성능을 향상시키기 위하여, 매칭 엔진(110a)은 쿼리들의 인덱스를 유지하고 각각의 쿼리를 동일하거나 매우 유사한 쿼리 결과들을 원하는 사용자들에 관련시킨다. 쿼리들의 인덱스는 쿼리 동작들의 중복을 감소시킨다. 장래에 착신되는 콘텐츠는 이들 사전 인덱싱된 쿼리들과 대조하여 분석(resolve)될 수 있다. 결과적으로 매치가 되는 임 의의 쿼리들에 대하여, 대응하는 사용자 ID가 목록에 추가된다. 또한 이메일, 인스턴스 메시지, 셀 방식 휴대 전화 등과 같은 사용자가 원하는 전달 방법이 사용자의 프로파일로부터 취해져서 목록에 포함된다. 유사하게, 원하는 전달 시간이 사용자 프로파일 내에 특정될 수 있다. 또한 사용자에게 송신되는 알림들 및/또는 다른 메시지들의 수를 제한하기 위해 사용자 프로파일에 메시지 한도(message limit)가 제공될 수 있다. 쿼리들은 콘텐츠의 유형, 컴퓨팅 장치들의 현재 부하, 및/또는 다른 특성들에 기초하여 컴퓨팅 장치들 사이에 분배될 수 있다. 콘텐츠에 대해 모든 쿼리들이 수행되었을 때, 매칭 엔진(110a)은 그 콘텐츠 및 목록을 전달 인터페이스(130a)에 중계할 준비를 한다.
중계 전에, 매칭 엔진(110a)은 또한 사용자 프로파일 데이터, 콘텐츠의 유형, 송신될 알림의 유형(들) 등에 기초하여 우선 순위를 결정할 수 있다. 우선 순위(priority)는 때때로 서비스 품질(QOS) 레벨로 불린다. 예를 들면, 주식 가격 콘텐츠는 전형적으로 매우 시간에 민감하므로, 매칭 엔진은 주식 가격 콘텐츠를 사용자들에게 매칭시키는 것에 보다 높은 우선 순위(예컨대, 높은 QOS 레벨)를 적용할 수 있다. 또 다른 예로서, 매칭 엔진은 사용자 프로파일 데이터(115a)를 이용하여 유급 서비스 플랜들(paid service plans) 및/또는 다른 특징들에 따라서 사용자들에 대한 발신 알림들을 우선 순위화할 수 있다.
스케줄된 시간 기반 피드를 이용한 풀된 콘텐츠에 대해, 폴러(120a)는 표시된 콘텐츠 유형에 대한 알림을 원하는 하나 이상의 사용자들에 대한 콘텐츠를 요구한다. 폴러(120a)는 수집 처리 모듈(172)로부터 또는 수집 처리 모듈(172)에 콘텐 츠를 공급하도록 예정(pre-arrange)되어 있지 않을 수 있는 외부 소스들로부터 직접 콘텐츠를 풀할 수 있다. 외부 콘텐츠는 정규화되고 다르게는, 요구된 콘텐츠가 폴러(120a)에 송신되기 전에 콘텐츠 소스에 의해 사전 처리되어 있지 않다면, 위에서 설명된 방식으로 사전 처리된다. 폴러 처리에 관한 더 상세한 내용에 대해서는 도 4 및 5를 참조하여 후술된다.
어쨌든, 콘텐츠가 최종 사용자에게 전달되어야 할 때, 도 2에 도시된 전달 인터페이스(130a)가 사용자들이 원하는 하나 이상의 방법으로 알림을 발생시킨다. 예를 들면, 어떤 사용자들은 셀 방식 휴대 전화 번호로 숏 메시지 서비스(SMS) 메시지들로서 전달되는 알림을 원할 수 있다. 전달 인터페이스(130a)는 일반적으로 전달 방법에 대응하는 템플릿을 사용한다. 템플릿을 콘텐츠 문서 또는 그 콘텐츠 문서에 대한 URL에 적용하여 최종 알림을 발생시킨다. 전달 인터페이스(130a)는 또한 각 사용자에 대한 알림 전달의 타이밍 및/또는 다른 QOS 특징들을 관리한다. 예를 들면, 어떤 알림들은 즉시 전달되는 반면, 다른 알림들은 나중의 전달을 위해 스케줄될 수 있다. 다른 예들로는 지리적 위치, 사업 파트너, 콘텐츠 소스, 및/또는 다른 파라미터들에 기초한 발송 배정(arranging for routing)을 포함한다. 전달 인터페이스(130a)는 또한 전달 불가능한 알림, 및/또는 다른 유지 보수(maintenance) 문제들을 관리한다. 전달에 관한 더 상세한 내용에 대해서는 도 6과 관련하여 후술된다.
콘텐츠 데이터 수집 처리
콘텐츠 수집 처리에 대해서는 더 상세히 설명하지 않는다. 도 3은 수집된 콘텐츠를 처리하기 위한 모범적인 논리를 예시하는 흐름도이다. 동작 180에서, 콘텐츠가 수신될 때, 소스가 인증된다. 인증 및/또는 다른 보안 조치들은 디지털 인증서, 디지털 서명, 암호화, 가상 사설망 터널 등을 포함한 하나 이상의 방법으로 구현될 수 있다. 콘텐츠에 대한 소스는 또한 도메인 보안 메커니즘으로 인증될 수 있으며, 이 도메인 보안 메커니즘은 주식회사 야후(Yahoo!, Inc.)가 제공한 것과 같은 도메인 키 애플리케이션을 포함하지만, 이것에 제한되는 것은 아니다.
동작 182에서, 수신된 콘텐츠는 XML 포맷과 같은 정규화 콘텐츠 포맷으로 변환된다. 표 1은 샘플 XML 데이터 구조를 예시한 것으로, 수신된 콘텐츠는 후속 처리 및 최종적으로 알림으로서 전달을 위해 XML 데이터 구조로 정규화된다.
(샘플 XML 데이터 구조)
Contact 구문 분석 에러 및 데이터 불일치가 보고될 수 있는 이메일 주소
Country 피드의 국가 코드
Date 문서의 날짜
ExpirationDate 콘텐츠의 만료 날짜
Url url
ArchiveUrl 알림 피드 아카이브에 대한 url
FeedProvider 피드 제공자의 명칭(로이터, AP). 피드 제공자들은 구성 파일(config file)로부터 검증될 필요가 있다.
Type 피드의 유형. 이 필드는 편집 페이지들과 관련하여 작용한다. 편집 페이지는 각 알림을 특정 유형과 함께 저장한다. 각 알림 유형은 문자열로서, 예를 들면 재정/인용/실시간/개인 소식(personals)이다.
Title 문서의 제목
Alert_Data 이 태그의 자식들(children)은 이메일 포맷팅을 위해 필요한 임의의 추가 데이터 및 태그들을 포함할 수 있다. 각각의 자식 태그는 키-값 쌍으로서 이메일 포맷팅 시스템에게 이용 가능할 것이다.
다음 코드는 알림을 발생시키기 위해 이용될 수 있는 교통 사건에 관한 샘플 정규화된 XML 콘텐츠 문서를 예시한다.
Figure 112008067788693-PAT00001
Figure 112008067788693-PAT00002
동작 184에서, 수집 처리 모듈은 콘텐츠를 검증 확인(validate)하여 소스로부터 필요한 데이터가 포함되었는지를 검증한다. 검증 확인(validation)은 또한 이전에 수신된 중복 콘텐츠를 업데이트하는 것 및/또는 제거하는 것, 및/또는 다른 데이터 무결성 측면들을 보증하는 것을 포함할 수 있다. 게다가, 검증 확인은 콘텐트가 인증된 소스로부터 정확히 수신된 것인지를 검증하는 것을 포함할 수 있다. 검증 확인은 암호화/복호화, 디지털 서명, 디지털 인증서, 암호(passwords), 대칭 키 쌍, 비대칭 키 쌍 등의 검증 확인을 포함할 수 있다.
전형적으로, 정규화된 XML 콘텐츠 문서는 추가 변경 없이 처리될 수 있다. 그러나, 피드 변환 동작(185) 동안에 어떤 변경들이 적용될 수 있다. 많은 경우에, 콘텐츠 피드 변환(content feed transformation)은 검증 확인 문제들을 처리(address)하기 위한 단순 문자열 치환(simple string substitutions) 또는 사소한 포맷팅 변환(formatting conversions)을 포함할 것이다. 그렇지만, 더욱 복잡한 논리 동작들이 수행될 수 있다. 예를 들면, 착신되는 주식 시세를 이전의 주식 시세와 비교하여 주식 가격에서 미리 정해진 비율 변화(predefined percentage change)가 발생하였는지 여부를 판정할 수 있다. 하루의 개장 이후 소정 주식의 가격이 소정의 비율만큼 변화했을 때 알림을 요구한 다수의 사용자들이 있을 수 있다. 수집 처리 모듈은 주식 시세 데이터를 사용자들과 관련시키기 전에 현재의 비율 변화를 미리 계산할 수 있어, 그 다수의 사용자들에게 알림이 송신되어야 할지를 판정하는 데 처리 자원들이 사용될 필요가 없거나 또는 중복될 필요가 없다.
동작 186에서, 수집 처리 모듈은 또한 다수의 메트릭(metrics)에 기초하여 콘텐츠를 저장, 탐색, 검색, 추적, 및/또는 조직하기 위해 콘텐츠를 인덱싱한다. 메트릭들 중 일부는 정규화된 콘텐츠 문서의 정규화된 데이터 구조에 고유한 것이지만, 이 메트릭들은 또한 상태 정보 및 보고를 위한 인덱스 문서에 저장될 수도 있다. 메트릭의 예로는 콘텐츠가 수신된 시간, 송신자의 ID, 콘텐츠가 송신된 국가, 콘텐츠의 유형, 콘텐츠가 폴 요구와 관련이 있는지 여부, 콘텐츠가 이전에 수신된 콘텐츠와 관련이 있는지 여부 등을 포함한다. 다량의 착신되는 콘텐츠에의 액세스를 편하게 하는 것 외에, 수집 처리 모듈은 메트릭들을 이용하여, 중복 콘텐츠를 삭제하고, 콘텐츠를 필터링하여 사소한 개정들(revisions)을 식별하는 것 등과 같은 하우스키핑(housekeeping) 및 최적화를 동작 188에서 수행할 수 있다. 이를테면, 뉴스 기사에서 철자법 에러가 정정되어 콘텐츠 소스로부터 재송신될 수 있다. 사용자는 단지 철자법 정정으로만 동일한 뉴스 기사의 2번의 알림을 원할 것 같지 않다. 만일 처음 뉴스 기사가 이미 송신되었다면, 차이 임계치가 초과되지 않는 한, 두 번째 버전은 삭제될 수 있다. 대안으로, 만일 뉴스 기사가 알림으로서 이미 송신되지 않았다면, 뉴스 기사의 처음 버전은 정정된 버전으로 대체되어 대기 행렬에 들(queue up) 수 있어 하나의 알림만이 스케줄된 시간에 사용자들에게 송신된다. 메트릭들의 인덱스 문서 및/또는 콘텐츠 문서는 일반적으로 피드 저장소에 저장된다. 각각의 저장된 인덱스 문서는 그 인덱스 정보에의 편한 액세스를 위해 인덱스 URL(index universal resource locator)에 의해 식별된다.
상기 동작들 전반에 걸쳐서, 수집 처리 모듈은 매칭 엔진을 돕기 위해 태그 및/또는 다른 코드를 삽입할 수 있다. 예를 들면, 위에서 설명된 동일 XML 문서와 관련하여, 수집 처리 모듈은 <AltersDocument> 태그의 각각의 즉시 CDATA 자식(immediate CDATA child)에 선택 사양의 '매칭' 속성을 적용할 수 있다. 매칭 엔진은 '매칭' 태그를 찾아 문서를 스캔하고 쿼리 표현식(들)을 텍스트 엘리먼트에 적용하여 그 문서와 매칭하는 사용자 ID를 판정할 수 있다.
폴러 서브시스템
도 4는 스케줄된 알림(scheduled alerts)을 생성하기 위해 폴링된 콘텐츠(polled content)를 관리하기 위한 폴러 아키텍처(poller architecture)를 예시한다. 거기에는 N개의 폴러 서버(180a 내지 180n)와, 주(primary) PMS(182) 및 일반적으로 백업으로서 기능하는 부(secondary) PMS(184)를 포함하는 적어도 2개의 폴러 매니저 서버(PMS)가 있다. 각각의 폴러 서버는, 논블로킹(non-blocking) I/O를 이용하여, 개인 광고, 일기 예보 등과 같은 알림 유형에 기초하여 하나 이상의 원하는 콘텐츠 소스들(122a)로부터의 다수의 폴들을 핸들링하는 다수의 프로세스들을 실행한다. 원하는 콘텐츠는, 예컨대 HTTP 인터페이스를 통하여, 수집 처리 모듈로부터 폴러(120)에 통신되고 및/또는 독립적으로 액세스될 수 있다. 각각의 폴러 서버는 96 버클리 DB 파일들과 같은 데이터베이스 파일들 내에 사용자 ID마다 동일한 알림 정보를 저장한다. 각각의 파일은 15분 - 24 x 4와 같은 시간 슬롯을 나타낸다. 사용자 데이터베이스(115) 내의 사용자의 프로파일 내에 알림 요구가 삽입되면, 제공자 코드, 알림 유형, 프리미엄 플래그, 및/또는 등등의 것에 기초하여 QOS 값이 계산된다. 스케줄된 알림은 대응하는 기간에서의 분배를 위해 전달 서버(들)(130)에 통신된다.
도 5는 시간 기반 알림을 준비하기 위한 논리를 예시하는 흐름도이다. 동작 200에서, 폴러 서버는 미리 정해진 기간이 경과한 후에 깨어나서 주 PMS에게 일깨움 신호(wakeup signal)를 송신한다. 만일 주 PMS가 다운되어 있으면, 일깨움 신호는 부 PMS에 발송된다. 일깨움 신호는 폴러 서버가 하나 이상의 미리 정해진 알림 유형들에 대응하는 콘텐츠에 대해 폴링하기 위해 이용 가능하다는 것을 나타낸다. 일깨움 신호들은 PMS가 갑자기 일깨움 신호들로 초과 실행(overrun)되지 않도록 조절(throttle)될 수 있다. PMS가 일깨움 신호를 수신하면, 동작 202에서 PMS는 PMS의 메모리 내의 폴러 서버 목록에 현재 이용 가능한 폴러 서버를 추가한다. 동작 204에서, PMS는 알림 목록 페치 요구(fetch_alerts_list request)를 송신하여 PMS의 목록 상의 제1 폴러 서버가 개인 광고, 교통 보고 등과 같은 하나 이상의 콘텐츠 아이템들을 액세스하게 한다. 동작 206에서, 폴러 서버는 페치 요구를 수신하고, 원하는 콘텐츠 아이템(들)을 액세스하고, 그 콘텐츠 아이템(들)을 PMS에 송신한다. 콘텐츠 아이템(들)을 액세스하기 위하여, 폴러 서버는 저장된 사용자 선호에 의해 정의된 쿼리 및/또는 다수의 사용자들이 원하는 통합된 쿼리(consolidated query)를 수행한다. 만일 쿼리로부터 아무런 결과도 찾지 못하면, 폴러 서버는 선택 사양으로(optionally) 쿼리를 넓혀서 다시 시도할 수 있다. 콘텐츠 아이템(들)은 15분 슬롯과 같은 현재의 미리 정해진 기간에 대응한다. 폴러 서버는 콘텐츠 아이템(들)을 PMS에 반환하기 전에 그 콘텐츠 아이템(들)을 QOS 레벨들에 따라서 우선 순위화할 수 있다.
동작 208에서 PMS는 다수의 폴러 서버들로부터의 반환된 콘텐츠 아이템들을 표들(tables) 내로 필터링한다. 표들은 알림 유형, 사용자 서비스 플랜 등의 QOS 레벨들에 기초한다. 예를 들면, 콘텐츠 아이템들은 우선 순위 레벨들에 대응하는 QOS 표 3, QOS 표 2, QOS 표 1 및 QOS 표 0으로 분류(sort)된다. 각각의 콘텐츠 아이템은 또한 그 콘텐츠 아이템이 표들 중 하나에 추가될 때 할당된 타임스탬프를 가질 것이다. 타임스탬프는 PMS가 콘텐츠 아이템이 알림으로 처리되지 않고 표에 있었던 시간의 길이를 추적하는 것을 가능케 한다. 일반적으로, 임계 길이 시간을 초과하여 표에 머무르는 콘텐츠 아이템은, 부하(load)에 대해 폴러 서버들이 충분히 없음을 나타낸다.
미리 정해진 간격으로 콘텐츠 아이템들에 대해 폴링하는 것 외에, 폴링 서버들은 전달될 대응하는 알림들을 준비하는 동작들을 수행한다. 따라서, 동작 210에서, 폴러 서버들은 작업을 요청하는 요구들을 PMS에게 송신한다. PMS는 일반적으로 표들로부터의 콘텐츠 아이템들을 QOS 레벨들의 순서에 기초하여 폴러 서버들에게 송신한다. 폴러 서버들은 기존의 쿼리 결과들을 현재의 콘텐츠 아이템(들)과 비교하는 것과 같은 논리 동작들을 수행한다. 예를 들어, 만일 현재의 콘텐츠 아이템이 기존의 쿼리 결과와 다르다면, 폴러 서버는 기존의 쿼리 결과를 현재의 콘텐츠 아이템으로 교체할 수 있다. 스케줄된 알림들은 장기간 동안 전달되지 않을 수 있으므로, 콘텐츠는 대응하는 알림이 최종적으로 전달되기 전에 여러 번 업데이트될 수 있다. 일단 폴러 서버가 그것의 작업을 마치면, 폴러 서버는 콘텐츠 아이템이 처리되었고 알림이 생성되었음을 나타내는 확인 응답(acknowledgement)을 PMS에게 송신한다. 폴러 서버는 또한 콘텐츠 아이템을 갖는 알림을 전달하라는 요구를 전달 서버에게 송신하고, 폴러 서버는 더 많은 작업을 요청한다. 확인 응답을 수신함과 동시에, PMS는 동작 212에서 콘텐츠 아이템을 그것의 대응하는 표로부터 제거하여, 대응하는 알림 작업이 완료되었음을 나타낸다.
판정 동작 214에서, PMS는 각 표로부터 모든 콘텐츠 아이템들이 제거되어, 각 QOS 레벨에 대한 모든 작업들이 완료되었음을 나타내는지를 판정한다. 만일 각 표가 비어 있다면, 처리는 바로 동작 200으로 복귀하여 또 다른 일깨움 신호를 기다린다. 만일 각 표가 비어 있지 않다면, PMS는 모든 그것의 작업들을 완료할 수 없었고, PMS는 에러를 로깅할 수 있다. 임의의 남아 있는 미처리 콘텐츠 아이템들은, 동작 216에서, 다음 기간 동안 얻어지는 임의의 새로운 콘텐츠 아이템들과 병합된다.
전달 서브시스템(Delivery Subsystem)
도 6은 1인 이상의 사용자들에게 알림을 전달하기 위한 모범적인 논리를 예시하는 흐름도이다. 위에서 간략히 논의된 바와 같이, 전달 서버들 및 저장 서버들은 일반적으로 송신 서버들과 인터페이스하여 각종의 방법으로 알림을 전달하기 위한 전달 서브시스템을 포함한다. 전달 서브시스템의 모든 컴포넌트들은 하드웨어 및/또는 소프트웨어 구성들의 임의의 조합을 포함할 수 있다. 이 유연성으로 인해, 제한된 하드웨어 자원들을 갖는 국제 사이트 상에서와 같은, 변화하는 환경에서의 알림의 전개(deployment)가 가능해진다.
예컨대 전달 서버가 새로 설치되거나 또는 얼마간의 시간 동안, 및/또는 소정의 미리 정해진 주기로 오프라인 상태 후에 서비스하기 위해 복귀한 경우와 같은, 초기화 동작 220에서, 전달 서버들은 또 다른 활성 상태의(live) 전달 서버로부터 및/또는 관리 인터페이스와 같은 또 다른 소스로부터 업데이트된 템플릿들을 수신한다. 모든 전달 서버들은 전달 서버 세트 전체에 걸쳐서 자동으로 전파된 동일한 템플릿들의 세트를 갖고 있어야 한다.
동작 221에서, 전달 서버(들)는 하나 이상의 메시지를 하나 이상의 사용자들에게 전달하라는 하나 이상의 요구들을 매칭 엔진 및/또는 폴러로부터 수신한다. 요구들은 일반적으로 키들 및 각 키와 관련된 값들의 세트를 포함한다. 키들은 이메일, 인스턴트 메신저, SMS, 웹 서버, 파일 전송 프로토콜(FTP) 전달 등과 같은 전달 방법에 대응하는 전달 템플릿들 내의 위치 보유자들(placeholders)에 대응한다. 예를 들면, 요구 내의 <fullname, John Smith>의 키-값 쌍은 선택된 전달 템플릿 내의 'fullname' 위치 보유자를 대체하기 위해 사용될 것이다. 전달 템플릿들은 개인 홈 페이지 하이퍼텍스트 프로세싱(PHP), JAVATM 서버 페이지(JSP), HTML Force 2000(HF2K)과 같은 잘 알려진 템플릿 언어, 및/또는 사유 템플릿 언어(proprietary template language)로 작성될 수 있다. 주식 시세, 뉴스, 항목별 광고(classifieds) 등과 같은 콘텐츠 유형은 전달 서버가 어느 전달 템플릿 세트를 사용할지를 판정하는 데 이용될 수 있다. 각각의 콘텐츠 유형마다, HTML 페이지 서버, 텍스트 파일 전송, 인스턴트 메신저, SMS 등과 같은 서로 다른 이용 가능한 전달 메커니즘들에 대해 전달 템플릿 세트가 생성될 수 있다. 그러나, 전달 서버들은 일반적으로 처리될 특정 알림 문서에 대해 전혀 알지 못한다. 대신에, 전달 서버들은 단순히 콘텐츠 및 사용자 ID 목록을 포함하는 문서를 볼 뿐이다. 콘텐츠 문서 및 사용자 ID의 이러한 조합은 때때로 프로세스매치리스트(ProcessMatchList)로 불린다. 위에서 설명된 바와 같이, 사용자 ID 목록은 특정 콘텐츠 피드와 매칭한 사용자 ID들을 포함한다. 콘텐츠 문서는 송신될 알림의 실제 콘텐츠를 나타내는 키-값 쌍들의 세트를 포함한다. 각 전달 방법에 대한 키-값 쌍들의 세트가 있을 수 있고, 이것들은 이메일 전달을 위한 한 쌍, 무선 전달을 위한 한 쌍, IM을 위한 한 쌍, 및 나중에 설명되는 웹 히스토리(web history)를 위한 한 쌍을 포함하지만, 이들에 제한되는 것은 아니다. 상기 표 1에서 식별된 키-값 쌍들 외에, ProcessMatchList는 또한 일반적으로 전달 목적으로 사용자의 프로파일로부터의 다음의 정보를 포함한다.
- 사용자 데이터베이스로부터의 사용자 ID 코드;
- 전달을 위한 국가 코드;
- 알림 콘텐츠 및/또는 전달 방법과 관련된 파트너 ID;
- 사용자 카테고리;
- QOS 레벨;
- 스케줄 대 즉시 전달 플래그;
- 프리미엄 서비스 패키지 정보;
- 예컨대 모바일 전달(mobile delivery)을 위해 필요할 수 있는 패스 스루 빌링 정보(pass through billing information).
상기 정보는 또한 모바일 서비스 제공자, 이메일 제공자 등을 통한 전달 경로의 최종 레그(leg) 상에서의 임의의 빌링 활동(billing activity)을 위해, 알림 콘텐츠를 포맷팅하는 데 사용되는 실제 템플릿을 결정하기 위한, 로깅/통계 목적으로 사용될 수도 있다.
ProcessMatchList를 수신함과 동시에, 전달 서버는, 동작 222에서, ProcessMatchList에서 식별된 전달 방법 및/또는 각 사용자와 관련된 QOS 레벨을 판정한다. 전달 서버는 인바운드 및 아웃바운드 큐 양쪽 모두에서 QOS 레벨에 따라서 요구들을 처리할 것이다. 매치 서버들로부터의 메시지는 일반적으로 결국에는 해당 큐가 포함하는 사용자들의 우선 순위 레벨에 따라서 적당한 인바운드 큐 내에 있게 된다. 전달 서버로부터 발생된 알림은 일반적으로 결국에는 그 알림이 이메일, 무선 SMS, IM, 및/또는 등등의 것을 통하여 송신될 것인가에 따라서 적당한 아웃바운드 큐 내에 있게 된다. 추가적으로, 또는 대안적으로, 전달 서버들은 예를 들어 사용자 데이터베이스가 다운되어 있으면 프리미엄 사용자들이 특별한 전달 옵션들을 갖도록 할 수 있다. 저장 서버들은 마지막 알려진 이메일 주소, 무선 장치 번호, 및/또는 각 사용자에 관해 알려져 있는 등등의 것을 저장한다. 전달 서버가 사용자 데이터베이스로부터 정보를 얻을 수 없는 경우에 전달 서버는 저장 서버로부터 해당 정보를 검색한다. 전달 서버는 또한 알림마다, 무선 장치마다, 사용자마다, 및/또는 등등의 것마다 메시지 제한을 시행할 수 있다. 전달 서버는 메시지 제한 정보를 저장/검색하기 위해 저장 서버와 인터페이스할 것이다.
동작 224에서, 전달 서버는 소정의 사용자들에 대한 및/또는 소정의 전달 방법들을 통한 알림의 전달에 대해 임의의 종류의 차단(block) 또는 경로 변경(rerouting)이 행해져 있는지 여부를 판정한다. 예를 들어, 사용자는 야간 시간(evening hours) 동안과 같이, 사용자가 어떠한 알림도 수신하고 싶지 않은 조용한 시간(quiet time)을 표시했을 수 있다. 유사하게, 사용자가 휴가 중이어서, 사용자가 돌아올 때까지 아무런 알림도 전달되지 않도록 요구하였을 수 있다. 전달 서버는 또한 사용자가 주로 선호하는 방법 외에 임의의 수의 전달 방법들을 통하여 알림이 전송되어야 하는지 여부를 판정할 수 있다.
판정 동작 226에서, 전달 서버는 어느 알림이 즉시 전달되어야 할지 및 어느 알림이 스케줄된 시간에 송신되어야 할지를 판정한다. 나중의 전달을 위해 스케줄되어 있는 알림들은 전달 저장 서버들 상에 저장될 것이다. 전달 저장 서버들을 구현하는 적어도 2가지 방법이 있는데, 여기서는 옵션 A와 옵션 B로 불린다.
옵션 A:
스케줄된 알림들에 대해, 자원 관리자 서버(RMS)는, 동작 228에서, 어느 사용자의 알림들이 어느 저장 서버들에 저장되는지를 판정한다. 한 사용자에 대한 알림을 저장할 필요가 있는 임의의 전달 서버는 먼저 사용자 데이터베이스 내의 그 사용자의 대응하는 알림 설정들을 검색(lookup)하여 알림들이 저장될 저장 서버 ID(StorageID)의 위치를 알아낼 것이다. 만일 그러한 저장 서버 ID가 존재하지 않는다면, 전달 서버는 RMS와 연락하여 저장 서버 ID를 얻는다. RMS는 등록된 저장 서버들 각각의 현재의 부하/이용도(load/usage)에 따라서, 사용자의 알림들이 저장될 저장 서버가 어느 것인지를 판정할 것이다. 서버 ID(serverID)가 전달 서버에 반환될 것이고, 전달 서버는 그 후 사용자 데이터베이스 내의 알림 설정들 내에 저장 서버 ID를 저장할 것이다. 장애극복(failover) 목적으로, 또는 RMS가 다운되어 있거나 응답하지 않을 경우, RMS API는 그 RMS에의 임의의 후속 쿼리 시에, 그것이 다시 나타날 때까지, 최종 발행된 저장 서버 ID가 결과로서 전달되도록 할 것이다.
일단 적당한 저장 서버가 식별되면, 전달 서버는, 동작 230에서, 사용자의 알림(들), 및 (선택 사양으로) 그들의 전달 옵션들을 해당 저장 서버에 저장한다. 단순히 나중의 전달을 기다리는 것 외에, 저장된 알림들은 보다 새로운 알림들과 비교되어 가장 최근의 콘텐츠를 보증할 수 있다. 예를 들면, 사용자는, 비록 스케줄된 전달 시간 전에 어느 기간의 시간에 걸쳐서 그 업데이트들로부터 다수의 매치들이 발생될 수도 있지만, 하루에 여러 번 업데이트된 뉴스 기사에 대해 단 하나의 알림만을 수신해야 한다.
전달 서버들에서와 같이, 저장 서버들은 일반적으로 임의의 알림 특정 정보에 대해 전혀 알지 못할 것이다. 저장 서버들은 고속 검색을 위해 공유 메모리(예컨대, shm)에 정보를 저장하고, 가능한 한 거의 디스크 저장을 사용하지 않으려고 모든 시도를 행할 것이다. 효율성을 위하여, 콘텐츠 피드 정보와 같이, 다수의 사용자들에게 공통인 임의의 정보는 한 번 저장되고 그 사용자들에게 인덱싱될 수 있다. 일 실시예에서, 공유 메모리 및 디스크 라이트 백(disk write back)의 조합을 통하여 구현될 수 있는, 각 서버에 적어도 4개의 저장 영역들이 있을 수 있다.
- 피드 저장소(Feed storage): 키-값 쌍들의 각 컬렉션은 콘텐츠 피드의 유형에 매칭되는 사용자들의 전체 세트에 대해 한 번 저장될 것이다.
- 사용자 저장소(User storage): 스케줄된 알림을 수신하는 것에 관심이 있는 각 사용자에 대한 엔트리. 이 영역은 사용자들이 알림을 삭제/편집하려고 하는 경우에 사용자의 레코드에의 고속 액세스를 위해 필요하다.
- 시간 저장소(Time storage): 스케줄된 알림을 수신하는 것에 관심이 있는 각 사용자는 적당한 시간 슬롯 및 적당한 서비스 큐 하에 저장된 레코드를 가질 것이다.
- 웹 저장소(Web Storage): 모든 전달된 알림은, 웹 프런트 엔드(web front end) 상에서의 이용을 위해, 그것을 생성한 피드에의 포인터를 갖는 영구 레코드(permanent record)를 가질 것이다.
장애극복 및 스케줄된 알림들의 보다 빠른 검색을 위해, 서버들 중 임의의 것이 미러링될 수 있다. 각각의 서버는, 예컨대 모듈로 알고리즘(modulo algorithm)을 통하여, 알림들의 서브세트에 대해 작용할 수 있다. 스케줄된 알림을 전달하는 것과 같은, 각 동작(action)마다, 서버는 그 동작을 하나 이상의 피어 미러들(peer mirrors)에게 복제할 수 있다. 스케줄된 전달들을 수행하는 프로세스들 간에 하트비트 메커니즘(heartbeat mechanism)이 일반적으로 설정되고, 그에 따라서 만일 서버가 다운되거나 또는 어떤 이유로 프로세스에 장애가 생기면, 미러 서버들 상의 남아 있는 프로세스들이 계속해서 그 작업을 행할 것이다. 이것은 장애극복을 위해서만이 아니라, 이용 가능한 처리 능력을 배가(예를 들면, 2배, 3배 등)하기 위해서도, 미러 서버들을 이용한다.
옵션 B:
전달 저장 서버의 대안 실시예에서, 관계 데이터베이스(relational database)가 알림 매칭 결과들에 관련하여 피드 콘텐츠를 저장한다. 개념적으로, 3가지 유형의 표가 피드 콘텐츠, 사용자 알림 매치들, 및 전달 스케줄 시간들을 관련시키기 위해 사용된다. 따라서, 그 3가지 유형의 표는 피드 표(Feed table), 알림 매치 표(AlterMatches table), 시간 슬롯 표(TimeSlot table)로 불린다. 피드 표는 저장 서버에 의해 수신되는 각 콘텐츠 피드를 포함한다. 각 콘텐츠 피드는 피드 Id(FeedId)에 의해 고유하게 식별된다. 샘플 피드 표 데이터 구조가 표 2에 도시되어 있다.
(샘플 피드 표 데이터 구조)
데이터 필드 데이터 유형
피드 Id 텍스트
피드 콘텐츠 텍스트
만료날짜 타임스탬프
생성시간 타임스탬프
알림 매치 표는 모든 알림에 대한 사용자 매치들을 저장한다. 사용자의 알림은 고유한 알림 Id(AlertId)에 의해 참조된다. 각 알림 Id마다 0 또는 그 이상의 피드가 있을 수 있다. 하나의 알림 Id에 대한 몇몇 매치들은 알림 매치 표 내의 다수의 행에 의해 표현될 것이고, 각 행은 상이한 피드 Id를 갖는다. 각 투플(tupel) <알림 Id, 피드 Id>는 알림 매치 표 내에서 고유하고 한 사용자의 알림을 대응하는 콘텐츠 피드에 결합시킨다. 샘플 알림 매치 표 데이터 구조가 표 3에 도시되어 있다.
(샘플 알림 매치 표 데이터 구조)
데이터 필드 데이터 유형
알림 Id 텍스트
피드 Id 텍스트
생성시간 타임스탬프
시간 슬롯 표는 전달 시간 슬롯과 관련된 모든 사용자들의 알림 id들을 저장한다. 하루 동안의 각 15분 전달 시간 슬롯이 하나의 시간 슬롯 표에 대응한다. 예를 들어, 표 TimeSlot_9_45는 오전 9:45에 설정된 전달 선호(delivery preferences)를 갖는 모든 알림 id들을 포함한다. 각 전달 슬롯의 시작에서, 다수의 프로세스들이 시간 슬롯 표 내의 알림 id들을 처리하기 시작한다. 이들 프로세스들을 조정(coordinate)하기 위해, 시간 슬롯 표 내의 'ClaimedBy' 필드는 각 프로세스가 또 다른 프로세스가 특정 알림 id에 대해 이미 작업하고 있는지 여부를 체크할 수 있게 한다. 만일 ClaimedBy 필드가 비어 있으면, 이 알림 id는 다음의 이용 가능한 프로세스에 의해 처리될 수 있게 된다. 샘플 시간 슬롯 표 데이터 구조가 표 4에 도시되어 있다.
(샘플 시간 슬롯 표 데이터 구조)
데이터 필드 데이터 유형
알림 Id 텍스트
Qos 레벨 정수
Dst 정수
ClaimedBy 정수
알림들이 저장소 내에 있는 동안, 알림 저장 서버는 또한, 동작 232에서, 사용자 데이터베이스로부터 업데이트들을 얻을 것이다. 이에 대한 한 가지 이유는 사용자가 알림을 삭제할 때마다 또는 사용자가 스케줄된 알림의 전달 시간을 변경하려고 할 때마다 사용자 엔트리들을 제거하기 위함이다. 매 1시간마다와 같이, 미리 정해진 전달 주기로, 저장 서버들은 그 주기로 전달될 저장된 알림들을 액세스하여, 즉시 전달을 위해 그들 저장된 알림들을 표시(mark)한다. 그 후 저장 서버들은 동작 234에서 그들 표시된 알림들을 전달 서버들에 송신한다. 동작 236에서, 전달 서버들은 발신되는 알림들을 미리 선택된 전달 방법에 따라서 포맷팅하기 위한 템플릿이 이전에 적용되지 않았다면, 그 템플릿을 적용한다. 그 후 전달 서버들은 이메일, 인스턴트 메시지, SMS, 및/또는 어느 전달 방법(들)이든 각 알림과 관련되어 있는 방법을 통해 전달하기 위해 즉시 전달 알림들(immediate delivery alerts)을 송신 서버들에 통신한다.
일단 전달 서버에 의해 알림이 송출되면, 동작 238에서, "addToHistory" 요구가 저장 서버들에 송신되어, 알림이 송출된 사실로 사용자의 히스토리를 업데이트하게 된다. "addToHistory" 요구 역시 키-값 쌍들의 세트를 포함하고, 따라서 상이한 알림 유형들이 상이한 정보 세트들을 저장할 수 있다. 여기서도, 전달 서버는 일반적으로 그것이 "addToHistory" 요구를 송신하고 있는 해당 특정 알림에 대해 전혀 알지 못한다. 저장될 필요가 있는 키-값 쌍들의 세트는 매칭 측에 의해 정의된다. 전달 서버로의 모든 요구는 또한 그 특정 알림에 대해 저장될 필요가 있는 키 명칭들의 임의의 세트를 동반해야 한다.
히스토리 정보는 또한 저장 서버들로부터 다른 서비스들로 브로드캐스트될 수 있다. 예를 들어, 히스토리 결과들은, 미러링된 저장 서버 세트로부터 직접, 또는 히스토리 결과들을 공급하는 별개의 저장 서버 세트로부터, 프런트 엔드 웹 페이지들 및/또는 다른 웹 포털 페이지들에 공급될 수 있다. 공유 메모리는 가능한 한 많은 사용자들의 히스토리 결과들을 보유할 수 있고("addToHistory" 요구들이 전달 서버들로부터 들어올 때 라이브로 업데이트됨(updated live)), 그와 동시에 히스토리 결과들은 영구 저장을 위해 디스크에 기입될 수 있다. 만일 사용자의 상위 N개 히스토리 결과들이 공유 메모리에 있지 않다면, 그 히스토리 결과들은 사용자의 영구 저장 파일로부터 액세스될 수 있다. 위에서 지적된 바와 같이, 결과들은 키-값 쌍들로 반환될 것이고, 그 결과들을 수신 측에게 적당한 방식으로 포맷팅하는 것은 수신 측에 맡겨질 것이다. 예를 들어, 실제 뉴스 알림은 사용자가 수신한 마지막 3개의 뉴스 알림의 요약 및 URL과 함께 사용자에 송신되었을 수 있는 데 반해, 히스토리 페이지는 단지 URL을 제시하기만 하면 될 것이다. 독립적인 포맷팅은 히스토리 파일들 내에 저장되어 있는 것을 변경하지 않고 새로운 알림 유형들이 추가될 수 있게 함으로써, 히스토리 보고를 위한 새로운 요건들을 가진 새로운 알림 유형을 수용한다. 일반적으로, 키-값 접근법은 장래의 요구에 적합할 것이다.
파국적 고장(catastrophic failure), 손상 문제, 또는 심지어 서버들을 업데이트할 필요가 있는 경우에 정보가 손실되지 않도록 하기 위해 다수의 조치들이 이용된다. 위에서 지적된 바와 같이, 각 저장 서버는 적어도 하나의 다른 서버에 의해 미러링되고, 따라서 서버는 그것의 미러(들)가 트래픽을 핸들링하는 동안 다운될 수 있다. 공유 메모리 및 복제 파일들의 백업들이 이용될 수 있다. 예를 들어, 매일 적어도 두 번의 공유 메모리의 백업이 이용될 수 있고, 또한 적어도 24시간만큼의 착신되는 복제 볼륨 파일들은, 가능한 한 빠르게 공유 메모리의 복제를 가능케 하여 서버를 다시 온라인으로 복귀시킨다.
다른 복구 능력들은 전달 요구들의 완벽한 처리를 보증한다. 이를테면, 대응하는 콘텐츠 문서와 관련된 모든 사용자 ID들이 처리되었을 때만 전달 서버는 알림을 "완료"(done)로 표시할 수 있다. 모니터 및/또는 다른 유틸리티들이 미송신된 알림들의 상태를 모니터하고 필요할 경우 알림 처리를 반복시킬 수 있다. 이 복구 능력은 또한 송신 서브들에 적용될 수 있다.
복구를 보증하는 것 외에, 미러 세트들은 범위성(scalability)을 위해 사용될 수 있다. 매치 서버들로부터의 증가된 트래픽을 핸들링하기 위해, 언제든지 임의의 개수의 추가적인 전달 서버들이 추가될 수 있다. 반대로, 임의의 유지 보수 이유로 언제든지 임의의 전달 서버가 오프라인으로 될 수 있다. 남아 있는 활성 상태의 서버들(live servers)이 매치 서버들로부터의 착신되는 트래픽을 핸들링할 것이다.
증가된 사용자 등록을 핸들링하기 위해, 임의의 개수의 저장 서버들이 수평적으로 추가될 수 있고, 이 경우 보다 많은 전체 미러 세트들이 추가된다. 증가된 스케줄된 알림 활동을 핸들링하기 위해, 저장 서버들은 또한 수직적으로 추가될 수 있고, 이 경우 보다 많은 미러 서버들이 세트마다 추가된다.
예시적 서버 환경
도 7은 본 발명의 일 실시예에 따른, 모범적인 서버(300)의 기능 블록도를 도시한다. 서버(300)는 매칭 서버, 피드 저장 서버, 폴러, 전달 서버, 저장 서버, 송신 서버 등과 같은, 위에서 논의된 서버들 중 어느 하나 이상의 서버를 포함할 수 있다. 클라이언트 장치들(client devices)은 유사하게 구성될 수 있다. 서버(300)는 도시된 것들보다 더 많은 컴포넌트들을 포함할 수 있다. 그러나, 도시된 컴포넌트들은 본 발명을 실시하기 위한 예시적 실시예를 개시하기에 충분하다.
서버(300)는 처리 장치(processing unit)(312), 비디오 디스플레이 어댑터(314), 대용량 메모리(mass memory)를 포함하고, 이들 모두는 버스(322)를 통하여 서로 통신한다. 대용량 메모리는 일반적으로 RAM(316), ROM(332), 및 광 드라이브(326), 하드 디스크 드라이브(328), 테이프 드라이브, 및/또는 플로피 디스크 드라이브와 같은, 하나 이상의 영구 대용량 저장 장치들을 포함한다. 대용량 메모리는 서버(300)의 동작을 제어하기 위한 운영 체제(320)를 저장한다. 임의의 범용 운영 체제가 이용될 수 있다. 서버(300)의 저레벨 동작을 제어하기 위한 기본 입출력 시스템("BIOS")(318)이 또한 제공된다. 도 6에 예시된 바와 같이, 서버(300)는, 네트워크 인터페이스 장치(310)를 통하여, 인터넷, 또는 도 1의 네트워크(160)와 같은 어떤 다른 통신 네트워크와 통신할 수 있고, 상기 네트워크 인터페이스 장치(310)는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP)을 포함한 다양한 통신 프로토콜과 함께 사용되도록 구성되어 있다. 네트워크 인터페이스 장치(310)는 때때로 송수신기, 송수신 장치, 네트워크 인터페이스 카드(NIC) 등으로 알려져 있다. 서버(300)는 또한 마우스, 키보드, 스캐너, 또는 도 1에 도시되지 않은 다른 입력 장치들과 같은 외부 장치들과 통신하기 위한 입출력 인터페이스(324)를 포함한다.
위에서 설명된 대용량 메모리는 컴퓨터 판독 가능 매체, 즉 컴퓨터 저장 매체의 또 다른 유형을 예시한다. 컴퓨터 저장 매체는, 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은, 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성, 비휘발성, 탈착식(removable), 및 고정식(non-removable) 매체를 포함할 수 있다. 컴퓨터 저장 매체의 예로는 RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD), 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치, 또는 다른 자기 저장 장치들, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
대용량 메모리는 또한 프로그램 코드 및 데이터를 저장한다. 하나 이상의 애플리케이션들(350)이 대용량 메모리 내에 로드되어 운영 체제(320) 상에서 실행된다. 애플리케이션 프로그램들의 예로는 데이터베이스 프로그램, 스케줄러(schedulers), 트랜스코더(transcoders), 이메일 프로그램, 캘린더, 웹 서비스, 워드 프로세싱 프로그램, 스프레드시트 프로그램 등을 포함한다. 대용량 저장 장치는 수집 처리 모듈(172), 관리 인터페이스(174), 매칭 엔진(110a), 폴러(120a), 전달 인터페이스(130a) 등을 더 포함할 수 있다.
상기 명세서, 예들, 및 데이터는 본 발명의 구성의 제조 및 이용에 대한 완전한 설명을 제공한다. 본 발명의 사상 및 범위를 벗어나지 않고서 본 발명의 다수의 실시예들이 행해질 수 있으므로, 본 발명은 이하에 첨부된 청구항들에 귀속된다.
도 1은 본 발명에 따른 모범적인 알림 아키텍처를 예시한다.
도 2는 도 1과 관련하여 설명된 아키텍처에 대응하는 기능 엘리먼트들 간의 관계 및 데이터 흐름을 예시하는 기능 블록도이다.
도 3은 수집된 콘텐츠를 처리하기 위한 모범적인 논리를 예시하는 흐름도이다.
도 4는 스케줄된 알림(scheduled alerts)을 생성하기 위해 폴링된 콘텐츠(polled content)를 관리하기 위한 폴러 아키텍처(poller architecture)를 예시한다.
도 5는 시간 기반 알림을 준비하기 위한 논리를 예시하는 흐름도이다.
도 6은 1인 이상의 사용자에게 알림을 전달하기 위한 모범적인 논리를 예시하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 모범적인 서버의 기능 블록도를 도시한다.

Claims (22)

  1. 알림 메시지(alert message)를 액세스 가능하게 하기 위한 방법으로서,
    복수의 포맷으로 액세스 가능한 콘텐츠를 정규화(normalize)하는 단계와;
    상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 단계와;
    상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 단계와;
    상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 단계 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사(interest)와 관련됨 - 와;
    상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 단계 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 와;
    상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    이벤트 기반 피드(event based feed)로서 상기 콘텐츠를 수신하는 단계와;
    시간 기반 피드(time based feed)로서 상기 콘텐츠를 요구하는 단계
    중 적어도 하나를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 콘텐츠를 정규화하는 단계는, 상기 복수의 포맷 중 어느 하나로부터 정규화된 포맷으로 상기 콘텐츠를 변환하는 것을 포함하는 방법.
  4. 제3항에 있어서, 상기 적어도 하나의 사용자가 상기 메시지를 액세스하는 것을 가능케 하는 단계는,
    상기 적어도 하나의 사용자에게 상기 알림 메시지를 즉시 전달하는 것과;
    상기 적어도 하나의 사용자에게 상기 알림 메시지를 미리 정해진 시간에 전달하는 것
    중 하나를 포함하는 방법.
  5. 제1항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 특징은,
    상기 콘텐츠가 수신된 시간;
    송신자의 ID(identifier);
    상기 콘텐츠의 유형;
    상기 콘텐츠가 송신된 국가;
    상기 콘텐츠가 폴 요구(poll request)와 관련되어 있는지의 표시; 및
    상기 콘텐츠가 이전에 수신된 콘텐츠와 관련되어 있는지의 표시
    중 적어도 하나를 포함하는 방법.
  6. 제1항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 단계는,
    쿼리 표현식(query expression)과 관련하여 상기 콘텐츠의 상기 적어도 하나의 부분을 평가하는 것 - 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사를 나타냄 - 과;
    상기 콘텐츠의 상기 적어도 하나의 부분이 상기 쿼리 표현식과 매칭하면, 상기 콘텐츠의 상기 적어도 하나의 부분과 상기 적어도 하나의 사용자 간의 관련(association)을 설정하는 것
    을 포함하는 방법.
  7. 제6항에 있어서, 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 사용자 프로파일(user profile)로부터 액세스되는 방법.
  8. 제1항에 있어서,
    상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 단계가 서비스 레벨의 품질에 따라서 수행되는 것과;
    상기 알림 메시지를 발생시키는 단계가 서비스 레벨의 품질에 따라서 수행되는 것과;
    상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계가 서비스 레벨의 품질에 따라서 수행되는 것
    중 적어도 하나인 방법.
  9. 제1항에 있어서, 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계는,
    이메일 메시지;
    인스턴스 메시지;
    숏 메시지 서비스 메시지; 및
    음성 메시지
    중 적어도 하나로서 상기 알림 메시지를 전달하는 것을 포함하는 방법.
  10. 제1항에 있어서,
    상기 콘텐츠 내에 필요한 데이터가 포함되어 있는지를 검증 확인(validate)하는 단계와;
    논리 동작에 따라서 상기 콘텐츠를 변환하여 상기 콘텐츠의 특징을 표현하는 단계와;
    상기 콘텐츠의 수신 파라미터들을 로깅하는 단계와;
    상기 콘텐츠를 저장하는 단계와;
    다른 콘텐츠에 관련하여 상기 콘텐츠를 우선 순위화(prioritize)하는 단계와;
    상기 콘텐츠의 복제본(duplicate)을 버리는 단계
    중 적어도 하나를 더 포함하는 방법.
  11. 제1항에 있어서, 정규화하고, 관련시키고, 발생시키고, 가능케 하는 상기 동작들을 미러링(mirroring)하는 단계를 더 포함하는 방법.
  12. 컴퓨팅 디바이스가 이하의 방법을 수행할 수 있도록 하는 컴퓨터 판독가능 명령어들을 저장하는 휘발성 및/또는 비휘발성 저장소를 포함하는 컴퓨터 판독가능 매체로서, 상기 방법은,
    복수의 포맷으로 액세스 가능한 콘텐츠를 정규화(normalize)하는 단계와;
    상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 단계와;
    상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있 는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 단계와;
    상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 단계 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사(interest)와 관련됨 - 와;
    상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 단계 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 와;
    상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계
    를 포함하는, 컴퓨터 판독가능 매체.
  13. 알림 메시지를 액세스 가능하게 하기 위한 시스템으로서,
    콘텐츠를 액세스하고 알림 메시지를 통신하기 위한 통신 인터페이스와;
    상기 통신 인터페이스와 통신하는 프로세서와;
    상기 프로세서와 통신하고, 상기 프로세서로 하여금,
    복수의 포맷으로 액세스 가능한 콘텐츠를 정규화하는 것과;
    상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 것과;
    상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 것과;
    상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 것 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사와 관련됨 - 과;
    상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 것 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고, 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 과;
    상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 것
    을 포함하는 복수의 기능을 수행하게 하는 명령어들 및 데이터를 저장하는 메모리
    를 포함하는 시스템.
  14. 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,
    이벤트 기반 피드로서 상기 콘텐츠를 수신하는 것과;
    시간 기반 피드로서 상기 콘텐츠를 요구하는 것
    중 적어도 하나의 동작을 수행하게 하는 시스템.
  15. 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,
    상기 복수의 포맷 중 어느 하나로부터 정규화된 포맷으로 상기 콘텐츠를 변환하는 것과;
    상기 콘텐츠 내에 필요한 데이터가 포함되어 있는지를 검증 확인하는 것과;
    논리 동작에 따라서 상기 콘텐츠를 변환하여 상기 콘텐츠의 특징을 표현하는 것과;
    상기 콘텐츠의 수신 파라미터들을 로깅하는 것과;
    상기 콘텐츠를 저장하는 것과;
    다른 콘텐츠와 관련하여 상기 콘텐츠를 우선 순위화하는 것과;
    상기 콘텐츠의 복제본을 버리는 것
    중 적어도 하나의 동작을 수행하게 하는 시스템.
  16. 제13항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 특징은,
    상기 콘텐츠가 수신된 시간;
    송신자의 ID;
    상기 콘텐츠의 유형;
    상기 콘텐츠가 송신된 국가;
    상기 콘텐츠가 폴 요구와 관련되어 있는지의 표시; 및
    상기 콘텐츠가 이전에 수신된 콘텐츠와 관련되어 있는지의 표시
    중 적어도 하나를 포함하는 시스템.
  17. 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,
    쿼리 표현식과 관련하여 상기 콘텐츠의 상기 적어도 하나의 부분을 평가하는 동작 - 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사를 나타냄 - 과;
    상기 콘텐츠의 상기 적어도 하나의 부분이 상기 쿼리 표현식과 매칭하면, 상기 콘텐츠의 상기 적어도 하나의 부분과 상기 적어도 하나의 사용자 간의 관련을 설정하는 동작을 수행하게 하는 시스템.
  18. 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,
    상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 것이 서비스 레벨의 품질에 따라서 수행되고;
    상기 알림 메시지를 발생시키는 것이 서비스 레벨의 품질에 따라서 수행되고;
    상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 것이 서비스 레벨의 품질에 따라서 수행되는
    동작들을 수행하게 하는 시스템.
  19. 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,
    상기 적어도 하나의 사용자에게 상기 알림 메시지를 즉시 전달하는 동작과;
    상기 적어도 하나의 사용자에게 상기 알림 메시지를 미리 정해진 시간에 전달하는 동작을 수행하게 하는 시스템.
  20. 제13항에 있어서, 상기 알림 메시지를 수신하기 위한 모바일 클라이언트 장치(mobile client device)를 더 포함하는 시스템.
  21. 제13항에 있어서,
    상기 통신 인터페이스와 통신하고, 또한 상기 콘텐츠를 액세스하고 미러링된 알림 메시지를 통신하기 위해 구성된 미러링된 통신 인터페이스(mirrored communication interface)와;
    상기 미러링된 통신 인터페이스와 통신하는 미러링된 프로세서와;
    상기 미러링된 프로세서와 통신하고, 상기 미러링된 프로세서로 하여금,
    복수의 포맷으로 액세스 가능한 상기 콘텐츠를 정규화하는 것과;
    상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하 는 것과;
    상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 것 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사와 관련됨 - 과;
    상기 적어도 하나의 사용자에 대한 미러링된 알림 메시지를 발생시키는 것 - 상기 미러링된 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 미러링된 알림 메시지는 상기 알림 메시지와 실질적으로 동등함 - 과;
    상기 적어도 하나의 사용자에 의해 미리 정해진 상기 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 미러링된 알림 메시지를 액세스하는 것을 가능케 하는 것
    을 포함하는 복수의 기능을 수행하게 하는 명령어들 및 데이터를 저장하는 미러링된 메모리
    를 더 포함하는 시스템.
  22. 메시지를 제공하기 위한 시스템으로서,
    적어도 하나의 콘텐츠 소스와 인터페이스하고, 복수의 포맷으로 콘텐츠를 액세스하고, 상기 콘텐츠의 적어도 하나의 부분을 정규화된 포맷으로 정규화하고, 상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하고, 상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 수집 처리 모듈(collection processing module)과;
    상기 수집 처리 모듈과 통신하고, 상기 콘텐츠의 상기 적어도 하나의 부분이 이벤트 기반 피드에 대응할 경우 상기 콘텐츠의 상기 적어도 하나의 부분을 갖는 알림 메시지를 발생시키는 매칭 엔진(matching engine) - 상기 콘텐츠의 상기 적어도 하나의 부분은 적어도 하나의 사용자의 적어도 하나의 관심사에 기초하여 상기 적어도 하나의 사용자와 관련됨 - 과;
    상기 수집 처리 모듈과 통신하고, 상기 콘텐츠의 상기 적어도 하나의 부분이 시간 기반 피드에 대응할 경우 상기 콘텐츠의 상기 적어도 하나의 부분을 갖는 알림 메시지를 발생시키는 폴러(poller) - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사에 기초하여 상기 적어도 하나의 사용자와 관련됨 - 와;
    상기 매칭 엔진 및 상기 폴러와 통신하고, 상기 적어도 하나의 사용자에 의해 미리 정해진 데이터 구조에 따라서 상기 적어도 하나의 사용자에게 상기 알림 메시지를 전달하는 전달 인터페이스(delivery interface)
    를 포함하는 시스템.
KR1020087023608A 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템 KR20080092481A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47840103P 2003-06-13 2003-06-13
US60/478,401 2003-06-13

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020057023871A Division KR101037802B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107026714A Division KR101161520B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20080092481A true KR20080092481A (ko) 2008-10-15

Family

ID=33539091

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020087023608A KR20080092481A (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템
KR1020057023871A KR101037802B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템
KR1020107026714A KR101161520B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020057023871A KR101037802B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템
KR1020107026714A KR101161520B1 (ko) 2003-06-13 2004-06-12 알림 전달 아키텍처를 위한 방법 및 시스템

Country Status (6)

Country Link
US (4) US7346630B2 (ko)
EP (1) EP1634202A4 (ko)
JP (1) JP2007516511A (ko)
KR (3) KR20080092481A (ko)
CN (1) CN100483405C (ko)
WO (3) WO2004114159A1 (ko)

Families Citing this family (217)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7024662B2 (en) 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US7370276B2 (en) * 2002-05-17 2008-05-06 Sap Aktiengesellschaft Interface for collecting user preferences
US9886309B2 (en) * 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US8019362B2 (en) * 2003-02-07 2011-09-13 Sybase 365, Inc. Universal short code administration facility
US7415672B1 (en) * 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7116976B2 (en) 2003-12-08 2006-10-03 Thomas C Douglass Adaptable communication techniques for electronic devices
US7346630B2 (en) * 2003-06-13 2008-03-18 Yahoo! Inc. Method and system for delivery alerts to a user
US7136661B2 (en) * 2003-07-08 2006-11-14 Lucent Technologies Inc. Weather alert notification to mobile station upon weather alert occurrence during a time period
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7181538B2 (en) * 2003-11-14 2007-02-20 Sybase 365, Inc. System and method for providing configurable, dynamic multimedia message service pre-transcoding
US7685265B1 (en) 2003-11-20 2010-03-23 Microsoft Corporation Topic-based notification service
US7877694B2 (en) * 2003-12-05 2011-01-25 Microsoft Corporation Hosted notifications templates
US7729688B2 (en) 2003-12-08 2010-06-01 Ipventure, Inc. Systems and processes to manage multiple modes of communication
EP1542439B1 (en) * 2003-12-09 2010-03-10 Samsung Electronics Co., Ltd. Method of raising schedule alarm with avatars in wireless telephone
US7430581B2 (en) * 2004-01-14 2008-09-30 Research In Motion Limited System and method for wirelessly provisioning a mobile communication device
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7162223B2 (en) * 2004-02-17 2007-01-09 Teamon Systems, Inc. System and method for notifying users of an event using alerts
US20050188078A1 (en) * 2004-02-23 2005-08-25 Kotzin Michael D. System and method for managing and associating dynamic containers of a content providing device
WO2005082101A2 (en) * 2004-02-26 2005-09-09 Truefire, Inc. Systems and methods for producing, managing, delivering, retrieving, and/or tracking permission based communications
US7249381B2 (en) * 2004-03-29 2007-07-24 Bryte Computer Technologies, Inc. Controller and resource management system and method with improved security for independently controlling and managing a computer system
US20060036674A1 (en) * 2004-05-11 2006-02-16 Walden Chris S Broadcasting network and content delivery system
US8065383B2 (en) * 2004-05-17 2011-11-22 Simplefeed, Inc. Customizable and measurable information feeds for personalized communication
US7577974B2 (en) 2004-05-28 2009-08-18 Microsoft Corporation Movies channel
US20060007957A1 (en) * 2004-06-14 2006-01-12 Nokia Corporation Transfer of a multimedia message
US9058388B2 (en) 2004-06-22 2015-06-16 Digimarc Corporation Internet and database searching with handheld devices
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7640328B1 (en) * 2004-06-30 2009-12-29 Symantec Operating Corporation Method and apparatus for prioritizing provisioning data in a provisioning server
US7889853B2 (en) * 2004-07-27 2011-02-15 At&T Intellectual Property I, L.P. Methods, systems, devices, and products for providing ring backs
US8375119B2 (en) * 2004-07-27 2013-02-12 At&T Intellectual Property I, L. P. Methods, systems, devices, and products for providing alerts for communications
US7555257B2 (en) * 2004-07-30 2009-06-30 Microsoft Corporation Stock channel and news channel
CN101268486A (zh) 2004-08-12 2008-09-17 组合数据公司 联系信息市场
US20060046732A1 (en) * 2004-08-24 2006-03-02 Microsoft Corporation Traffic channel
US20060048053A1 (en) * 2004-08-30 2006-03-02 Xerox Corporation Individually personalized customized report document system
JP4241554B2 (ja) * 2004-09-02 2009-03-18 ブラザー工業株式会社 情報検索システム、情報入出力装置およびプログラム
US7567799B2 (en) 2004-09-17 2009-07-28 Microsoft Corporation Daily diversion channel
US7672928B2 (en) * 2004-09-30 2010-03-02 Microsoft Corporation Query forced indexing
US20060155698A1 (en) * 2004-12-28 2006-07-13 Vayssiere Julien J System and method for accessing RSS feeds
US7873912B1 (en) * 2005-02-25 2011-01-18 Apple Inc. Process and system for providing a reduced set of fields associated with a report layout
GB0505929D0 (en) * 2005-03-23 2005-04-27 Message Mechanics Ltd Delivering information to a mobile device
US7860932B2 (en) * 2005-04-04 2010-12-28 Asaf Fried Method and system for temporal delivery of email messages
US7689455B2 (en) * 2005-04-07 2010-03-30 Olista Ltd. Analyzing and detecting anomalies in data records using artificial intelligence
US20060285691A1 (en) * 2005-06-02 2006-12-21 Lucent Technologies Inc. National security alerting in wireless communication networks
US9104773B2 (en) 2005-06-21 2015-08-11 Microsoft Technology Licensing, Llc Finding and consuming web subscriptions in a web browser
US8661459B2 (en) 2005-06-21 2014-02-25 Microsoft Corporation Content syndication platform
JP4581870B2 (ja) * 2005-06-29 2010-11-17 ブラザー工業株式会社 通信システム、情報処理装置、及びプログラム
US7548969B2 (en) * 2005-07-27 2009-06-16 Hewlett-Packard Development Company, L.P. Computer system polling with adjustable intervals based on rules and server states
US20070079335A1 (en) * 2005-09-30 2007-04-05 Mcdonough John C Generating an alert signal for use with digital video recorders
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8176078B1 (en) * 2005-12-21 2012-05-08 At&T Intellectual Property Ii, L.P. Method and apparatus for distributing network security advisory information
US8799302B2 (en) * 2005-12-29 2014-08-05 Google Inc. Recommended alerts
US7925649B2 (en) 2005-12-30 2011-04-12 Google Inc. Method, system, and graphical user interface for alerting a computer user to new results for a prior search
JP4722708B2 (ja) * 2006-01-06 2011-07-13 株式会社コナミデジタルエンタテインメント チャットシステム、チャット装置及びチャットサーバの制御方法、プログラム
JP4671880B2 (ja) * 2006-01-31 2011-04-20 株式会社コナミデジタルエンタテインメント チャットシステム、チャット装置及びチャットサーバの制御方法、プログラム
US20070192401A1 (en) * 2006-02-16 2007-08-16 Gordon Weakliem System and method for synchronizing syndicated content over multiple locations
EP1989823B1 (en) * 2006-02-27 2012-11-07 Vonage Network LLC Method and system for bidirectional data transfer
US8280843B2 (en) * 2006-03-03 2012-10-02 Microsoft Corporation RSS data-processing object
US7979803B2 (en) * 2006-03-06 2011-07-12 Microsoft Corporation RSS hostable control
US7301450B2 (en) 2006-03-14 2007-11-27 John Carrino Citizen communication center
US7974390B2 (en) * 2006-04-05 2011-07-05 Cisco Technology, Inc. Method and system for transferring audio content to a telephone-switching system
US8458725B2 (en) * 2006-04-10 2013-06-04 Oracle International Corporation Computer implemented method for removing an event registration within an event notification infrastructure
US20070244758A1 (en) * 2006-04-16 2007-10-18 Bin Xie Methods and systems for managing information relevant to shopping tasks
US9390118B2 (en) * 2006-04-19 2016-07-12 Oracle International Corporation Computer implemented method for transforming an event notification within a database notification infrastructure
US8108388B2 (en) * 2006-04-26 2012-01-31 Microsoft Corporation Significant change search alerts
US20070265855A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation mCARD USED FOR SHARING MEDIA-RELATED INFORMATION
US8464275B2 (en) * 2006-05-10 2013-06-11 Oracle International Corporation Method of using a plurality of subscriber types in managing a message queue of a database management system
US7895600B2 (en) 2006-05-10 2011-02-22 Oracle International Corporation Method of optimizing propagation of non-persistent messages from a source database management system to a destination database management system
US7761413B2 (en) * 2006-05-10 2010-07-20 Oracle International Corporation Method of ensuring availability of event notification registrations of a database management system
US9386327B2 (en) * 2006-05-24 2016-07-05 Time Warner Cable Enterprises Llc Secondary content insertion apparatus and methods
US8280982B2 (en) 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US9443022B2 (en) 2006-06-05 2016-09-13 Google Inc. Method, system, and graphical user interface for providing personalized recommendations of popular search queries
US8024762B2 (en) 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
US7647360B2 (en) * 2006-06-19 2010-01-12 Hitachi, Ltd. System and method for managing a consistency among volumes in a continuous data protection environment
US8826303B2 (en) * 2006-06-22 2014-09-02 Linkedin Corporation Content alerts
US8793361B1 (en) * 2006-06-30 2014-07-29 Blue Coat Systems, Inc. Traffic synchronization across multiple devices in wide area network topologies
WO2008015033A1 (en) * 2006-08-01 2008-02-07 Telefonaktiebolaget Lm Ericsson (Publ) User preferences in interactive personal television
WO2008015187A1 (en) * 2006-08-01 2008-02-07 Telefonaktiebolaget Lm Ericsson (Publ) User preferences in interactive personal television
GB2435565B (en) * 2006-08-09 2008-02-20 Cvon Services Oy Messaging system
US8589239B2 (en) * 2006-09-29 2013-11-19 Ebay Inc. Real-time bidding using instant messaging clients
US8224904B2 (en) 2006-09-29 2012-07-17 Microsoft Corporation Missed instant message notification
US8661025B2 (en) * 2008-11-21 2014-02-25 Stubhub, Inc. System and methods for third-party access to a network-based system for providing location-based upcoming event information
US7557689B2 (en) * 2006-11-20 2009-07-07 Solana Networks Inc. Alerting method, apparatus, server, and system
GB2436412A (en) * 2006-11-27 2007-09-26 Cvon Innovations Ltd Authentication of network usage for use with message modifying apparatus
US9767462B2 (en) * 2006-12-13 2017-09-19 Mapp Digital US, LLC Localized time zone delivery system and method
US20080155030A1 (en) * 2006-12-21 2008-06-26 Fortier Stephane Maxime Franco Systems and methods for conveying information to an instant messaging client
WO2008074124A1 (en) * 2006-12-21 2008-06-26 Bce Inc. Systems and methods for conveying information to an instant messaging client
US8943128B2 (en) * 2006-12-21 2015-01-27 Bce Inc. Systems and methods for conveying information to an instant messaging client
US20080155031A1 (en) * 2006-12-21 2008-06-26 Fortier Stephane Maxime Franco Systems and methods for conveying information to an instant messaging client
US7822848B2 (en) * 2006-12-28 2010-10-26 International Business Machines Corporation Alert log activity thread integration
US8576068B2 (en) * 2006-12-29 2013-11-05 Honeywell International Inc. Method and system for uploading near-real-time messages to keypad of a security system
US20080167907A1 (en) * 2007-01-05 2008-07-10 Carl De Marcken Cache poller for providing travel planning information
US20080167886A1 (en) * 2007-01-05 2008-07-10 Carl De Marcken Detecting errors in a travel planning system
US20080167910A1 (en) * 2007-01-05 2008-07-10 De Marcken Carl Providing travel information using a notification service
US20080167908A1 (en) * 2007-01-05 2008-07-10 Carl De Marcken Notification service for presenting travel information
US7711587B2 (en) * 2007-01-05 2010-05-04 Ita Software, Inc. Providing travel information using cached query answers
US20080168093A1 (en) * 2007-01-05 2008-07-10 De Marcken Carl Providing travel information using a layered cache
US20080167909A1 (en) * 2007-01-05 2008-07-10 De Marcken Carl Updating a database of travel information
US20080167906A1 (en) * 2007-01-05 2008-07-10 De Marcken Carl Support for flexible travel planning
US20080319991A1 (en) * 2007-01-08 2008-12-25 Lsr Technologies System for Searching Network Accessible Data Sets
GB2440990B (en) 2007-01-09 2008-08-06 Cvon Innovations Ltd Message scheduling system
EP2122506A4 (en) * 2007-01-10 2011-11-30 Sysomos Inc METHOD AND SYSTEM FOR INFORMATION DISCOVERY AND TEXT ANALYSIS
US8073475B2 (en) * 2007-02-02 2011-12-06 Disney Enterprises, Inc. Method and system for transmission and display of rich-media alerts
US20080208820A1 (en) * 2007-02-28 2008-08-28 Psydex Corporation Systems and methods for performing semantic analysis of information over time and space
US8041780B2 (en) * 2007-03-29 2011-10-18 Alcatel Lucent Method and apparatus for dynamically pushing content over wireless networks
US8068821B2 (en) * 2007-03-29 2011-11-29 Alcatel Lucent Method and apparatus for providing content to users using unicast and broadcast wireless networks
US8588750B2 (en) * 2007-03-31 2013-11-19 Alcatel Lucent Method and apparatus for providing interactive services to users using unicast and broadcast wireless networks
GB2440408B (en) * 2007-05-16 2008-06-25 Cvon Innovations Ltd Method and system for scheduling of messages
US8935718B2 (en) * 2007-05-22 2015-01-13 Apple Inc. Advertising management method and system
US8185095B2 (en) 2007-06-06 2012-05-22 Mspot, Inc. Method and apparatus for tracking version of digital content
GB2450144A (en) * 2007-06-14 2008-12-17 Cvon Innovations Ltd System for managing the delivery of messages
GB2450387B (en) * 2007-06-18 2009-07-08 Cvon Innovations Ltd Method and system for managing delivery of communications
US7577433B2 (en) * 2007-06-18 2009-08-18 Cvon Innovations Limited Method and system for managing delivery of communications
GB2448957B (en) * 2007-06-20 2009-06-17 Cvon Innovations Ltd Mehtod and system for identifying content items to mobile terminals
US8117094B2 (en) * 2007-06-29 2012-02-14 Microsoft Corporation Distribution channels and monetizing
EP2181385A4 (en) * 2007-07-11 2013-04-24 Google Inc TREATMENT OF VOLUMES HOSTED IN DIGITAL FORM
US7907930B2 (en) * 2007-07-16 2011-03-15 Cisco Technology, Inc. Emergency alert system distribution to mobile wireless towers
WO2009032814A2 (en) * 2007-09-04 2009-03-12 Nixle, Llc System and method for collecting and organizing popular near real-time data in a virtual geographic grid
US20090076904A1 (en) * 2007-09-17 2009-03-19 Frank David Serena Embedding digital values for digital exchange
US8306967B2 (en) * 2007-10-02 2012-11-06 Loglogic, Inc. Searching for associated events in log data
US20090099932A1 (en) * 2007-10-11 2009-04-16 Cvon Innovations Ltd. System and method for searching network users
JP5303975B2 (ja) * 2008-03-18 2013-10-02 株式会社リコー データ配信装置及びデータ配信システムと、そのエラー通知方法並びにそのプログラム及びそれを記録した記録媒体
US20090259692A1 (en) * 2008-04-11 2009-10-15 Bangel Matthew J Managing database agents
US20090276712A1 (en) * 2008-04-30 2009-11-05 Caterpillar Inc. Safety awareness system
US8751948B2 (en) 2008-05-13 2014-06-10 Cyandia, Inc. Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
US8499250B2 (en) * 2008-05-13 2013-07-30 Cyandia, Inc. Apparatus and methods for interacting with multiple information forms across multiple types of computing devices
US8375100B1 (en) 2008-06-05 2013-02-12 United Services Automobile Association (Usaa) Systems and methods for sending consolidated electronic mail messages
US20090322560A1 (en) * 2008-06-30 2009-12-31 General Motors Corporation In-vehicle alert delivery maximizing communications efficiency and subscriber privacy
TW201006175A (en) * 2008-07-31 2010-02-01 Ibm Method, apparatus, and computer program product for testing a network system
KR100905434B1 (ko) * 2008-08-08 2009-07-02 (주)이스트소프트 실시간 색인 정보 추출 기능을 갖는 파일 업로드 방법 및 이를 이용한 웹 스토리지 시스템
US8495161B2 (en) * 2008-12-12 2013-07-23 Verizon Patent And Licensing Inc. Duplicate MMS content checking
US7693907B1 (en) 2009-01-22 2010-04-06 Yahoo! Inc. Selection for a mobile device using weighted virtual titles
US20100241723A1 (en) * 2009-03-17 2010-09-23 Hugh Dornbush Computer-Implemented Delivery of Real-Time Participatory Experience of Localized Events
US8631070B2 (en) 2009-03-27 2014-01-14 T-Mobile Usa, Inc. Providing event data to a group of contacts
US20100299275A1 (en) * 2009-05-21 2010-11-25 Computer Associates Think, Inc. Content-based social computing
AU2015203305B2 (en) * 2009-08-25 2017-02-02 Visa International Service Association Response to alert message
US20110055076A1 (en) * 2009-08-25 2011-03-03 Greg Trifiletti Response to alert message
US20110154209A1 (en) * 2009-12-22 2011-06-23 At&T Intellectual Property I, L.P. Platform for proactive discovery and delivery of personalized content to targeted enterprise users
US20110264530A1 (en) 2010-04-23 2011-10-27 Bryan Santangelo Apparatus and methods for dynamic secondary content and data insertion and delivery
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8812065B2 (en) 2010-06-07 2014-08-19 Ford Global Technologies, Llc System and method for monitoring the location of a communication device in a vehicle based on signal strength
US8621213B2 (en) 2010-06-08 2013-12-31 Merge Healthcare, Inc. Remote control of medical devices using instant messaging infrastructure
DE102010030309A1 (de) 2010-06-21 2011-12-22 Ford Global Technologies, Llc Verfahren und Vorrichtung zur Ermittlung einer energieverbrauchsoptimierten Route
US10163074B2 (en) 2010-07-07 2018-12-25 Ford Global Technologies, Llc Vehicle-based methods and systems for managing personal information and events
US8774760B2 (en) * 2010-07-19 2014-07-08 Infosys Limited Method and system for providing real-time alert notification
US8626553B2 (en) * 2010-07-30 2014-01-07 General Motors Llc Method for updating an electronic calendar in a vehicle
US8510658B2 (en) 2010-08-11 2013-08-13 Apple Inc. Population segmentation
CN102375865B (zh) * 2010-08-24 2016-08-03 腾讯科技(深圳)有限公司 一种消息客户端的消息更新方法及消息客户端
US8983978B2 (en) 2010-08-31 2015-03-17 Apple Inc. Location-intention context for content delivery
US8819726B2 (en) 2010-10-14 2014-08-26 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US20110225105A1 (en) * 2010-10-21 2011-09-15 Ford Global Technologies, Llc Method and system for monitoring an energy storage system for a vehicle for trip planning
US9300701B2 (en) * 2010-11-01 2016-03-29 Google Inc. Social circles in social networks
US20120124477A1 (en) * 2010-11-11 2012-05-17 Microsoft Corporation Alerting users to personalized information
US9171089B2 (en) * 2010-11-16 2015-10-27 John Nicholas and Kristin Gross Trust Message distribution system and method
US8782033B2 (en) 2010-12-01 2014-07-15 Microsoft Corporation Entity following
US8738574B2 (en) 2010-12-20 2014-05-27 Ford Global Technologies, Llc Automatic wireless device data maintenance
US8335494B2 (en) 2010-12-30 2012-12-18 Ford Global Technologies, Llc Provisioning of callback reminders on a vehicle-based computing system
US20110224852A1 (en) * 2011-01-06 2011-09-15 Ford Global Technologies, Llc Methods and system for selectively charging a vehicle
US8849499B2 (en) * 2011-01-06 2014-09-30 Ford Global Technologies, Llc Methods and systems for monitoring a vehicle's energy source
US9754045B2 (en) * 2011-04-01 2017-09-05 Harman International (China) Holdings Co., Ltd. System and method for web text content aggregation and presentation
US8406938B2 (en) 2011-05-19 2013-03-26 Ford Global Technologies, Llc Remote operator assistance for one or more user commands in a vehicle
US20130041552A1 (en) 2011-08-11 2013-02-14 Ford Global Technologies, Llc Methods and Apparatus for Estimating Power Usage
US9612797B2 (en) 2011-08-25 2017-04-04 Ford Global Technologies, Llc Method and apparatus for a near field communication system to exchange occupant information
US20130067024A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Distributing multi-source push notifications to multiple targets
US8907776B2 (en) 2011-10-05 2014-12-09 Ford Global Technologies, Llc Method and apparatus for do not disturb message delivery
US9241200B2 (en) * 2011-10-11 2016-01-19 Verizon Patent And Licensing Inc. Targeted advertising
KR101402506B1 (ko) 2011-12-01 2014-06-03 라인 가부시키가이샤 인스턴트 메시징 어플리케이션을 이용한 대화형 정보제공 시스템 및 방법
US9081749B2 (en) 2011-12-12 2015-07-14 Microsoft Technology Licensing, Llc Automatic language sensitive, event based activity feeds
US20130201316A1 (en) 2012-01-09 2013-08-08 May Patents Ltd. System and method for server based control
US8849742B2 (en) 2012-01-24 2014-09-30 Ford Global Technologies, Llc Method and apparatus for providing charging state alerts
WO2013149290A1 (en) * 2012-04-04 2013-10-10 Not Now Pty Ltd An electronic message management system
WO2013165744A1 (en) * 2012-04-30 2013-11-07 Webtrends Inc. Method and system that streams real-time, processed data from remote processor-controlled appliances
JP5906950B2 (ja) * 2012-06-06 2016-04-20 富士通株式会社 コンテンツ配信のための情報処理方法及び装置
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
US9311412B2 (en) * 2012-07-16 2016-04-12 International Business Machines Corporation Automatically notifying a computer user of internet content
EA201590644A1 (ru) * 2012-09-24 2015-09-30 Клермонт Спиде Способ и система с управляемыми мобильным отправителем доступом к данным и удалением данных
CN102981941B (zh) * 2012-11-08 2016-03-02 大唐软件技术股份有限公司 一种告警处理方法及告警处理装置
US9800427B2 (en) * 2012-12-19 2017-10-24 Hartford Fire Insurance Company System and method for distributing electronic and paper documents as per customer consent
US8682529B1 (en) 2013-01-07 2014-03-25 Ford Global Technologies, Llc Methods and apparatus for dynamic embedded object handling
GB2509910B (en) * 2013-01-16 2019-02-20 Sony Corp Telecommunications apparatus and methods
US9789788B2 (en) 2013-01-18 2017-10-17 Ford Global Technologies, Llc Method and apparatus for primary driver verification
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US9462545B2 (en) 2013-03-14 2016-10-04 Ford Global Technologies, Llc Method and apparatus for a battery saver utilizing a sleep and vacation strategy
US9066298B2 (en) 2013-03-15 2015-06-23 Ford Global Technologies, Llc Method and apparatus for an alert strategy between modules
US9967317B2 (en) * 2013-07-25 2018-05-08 Tencent Technology (Shenzhen) Company Limited Methods and systems for sending and receiving alerts
US9292831B2 (en) * 2013-10-09 2016-03-22 Christopher Burns Monitoring data elements across multiple networks and processes
US9361090B2 (en) 2014-01-24 2016-06-07 Ford Global Technologies, Llc Apparatus and method of software implementation between a vehicle and mobile device
US10586223B1 (en) * 2014-02-03 2020-03-10 Exponential Horizons, Llc System and method for a line of credit based digital content multi-chambered cloud based distribution platform
KR20170125797A (ko) * 2014-12-17 2017-11-15 스티븐 젠센 트리폴리포스페이트 염을 사용하는 치아 미백 필름
EP3243195A4 (en) 2015-01-06 2018-08-22 Cmoo Systems Itd. A method and apparatus for power extraction in a pre-existing ac wiring infrastructure
CN104660494B (zh) * 2015-02-11 2018-11-27 深圳市奔跑科技有限公司 一种通信系统
US20160277485A1 (en) * 2015-03-18 2016-09-22 Nuzzel, Inc. Socially driven feed of aggregated content in substantially real time
US9830603B2 (en) 2015-03-20 2017-11-28 Microsoft Technology Licensing, Llc Digital identity and authorization for machines with replaceable parts
WO2016178318A1 (en) * 2015-05-07 2016-11-10 Sharp Kabushiki Kaisha System for targeting and demographics
CN105096230A (zh) * 2015-07-31 2015-11-25 小米科技有限责任公司 航班通知方法、航班设置方法及装置
US9333913B1 (en) 2015-09-04 2016-05-10 Steven D. Elders Real time vehicle safety alert system
WO2017046789A1 (en) 2015-09-15 2017-03-23 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
US20170149716A1 (en) * 2015-11-23 2017-05-25 International Business Machines Corporation Prioritizing delivery of messages in communication systems
US10706056B1 (en) * 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US20170193051A1 (en) * 2015-12-31 2017-07-06 Mehdi Ghafourifar Systems and methods for automatic archiving, sorting, and/or indexing of secondary message content
US11255663B2 (en) 2016-03-04 2022-02-22 May Patents Ltd. Method and apparatus for cooperative usage of multiple distance meters
US10554772B2 (en) * 2016-03-07 2020-02-04 Microsoft Technology Licensing, Llc Sharing personalized entities among personal digital assistant users
US10586023B2 (en) 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US10397163B2 (en) * 2016-11-07 2019-08-27 Google Llc Third party application configuration for issuing notifications
US11907321B2 (en) * 2019-10-18 2024-02-20 Trovata, Inc. Operator settings for natural language search and filtering on a web service platform for distributed server systems and clients
CN110325929B (zh) 2016-12-07 2021-05-25 阿瑞路资讯安全科技股份有限公司 用于检测有线网络变化的信号波形分析的系统和方法
US20200294401A1 (en) 2017-09-04 2020-09-17 Nng Software Developing And Commercial Llc. A Method and Apparatus for Collecting and Using Sensor Data from a Vehicle
EP3679448A4 (en) * 2017-09-06 2020-10-21 Siemens Healthcare Diagnostics Inc. ALARM-ACTIVATED PASSIVE APPLICATION INTEGRATION
KR102362690B1 (ko) * 2017-09-20 2022-02-14 주식회사 케이티 웨어러블 디바이스와 연동하여 알림 서비스를 제공하는 사용자 단말, 방법 및 컴퓨터 프로그램
US11341323B1 (en) * 2017-12-06 2022-05-24 Dennis J M Donahue, III Patent application preparation system and template creator
WO2019123447A1 (en) 2017-12-24 2019-06-27 Arilou Information Security Technologies Ltd. System and method for tunnel-based malware detection
US11403849B2 (en) 2019-09-25 2022-08-02 Charter Communications Operating, Llc Methods and apparatus for characterization of digital content
US20230342540A1 (en) * 2022-04-21 2023-10-26 Black Hills Ip Holdings, Llc Method and apparatus for generating a document and data processing
CN115440044B (zh) * 2022-07-29 2023-10-13 深圳高速公路集团股份有限公司 一种公路多源事件数据融合方法、装置、存储介质及终端

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922491A (en) 1988-08-31 1990-05-01 International Business Machines Corporation Input/output device service alert function
US5454074A (en) 1991-09-18 1995-09-26 The Boeing Company Electronic checklist system
GB2315200B (en) 1995-05-08 2000-06-21 Compuserve Inc System for electronic messaging via wireless devices
US6021433A (en) 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
US7007070B1 (en) * 1996-03-06 2006-02-28 Hickman Paul L Method and apparatus for computing over a wide area network
US5889935A (en) 1996-05-28 1999-03-30 Emc Corporation Disaster control features for remote data mirroring
US6493633B2 (en) * 1996-06-04 2002-12-10 Robert O. Baron, Sr. Systems and methods for distributing real-time site specific weather information
US5813007A (en) * 1996-06-20 1998-09-22 Sun Microsystems, Inc. Automatic updates of bookmarks in a client computer
US6167426A (en) 1996-11-15 2000-12-26 Wireless Internet, Inc. Contact alerts for unconnected users
JPH10260955A (ja) * 1997-03-19 1998-09-29 Toshiba Corp 情報収集装置、情報評価装置、情報処理システム、情報収集方法、情報評価方法及び情報処理方法
US6553416B1 (en) 1997-05-13 2003-04-22 Micron Technology, Inc. Managing computer system alerts
US6425006B1 (en) * 1997-05-13 2002-07-23 Micron Technology, Inc. Alert configurator and manager
US6449356B1 (en) * 1998-05-26 2002-09-10 Rockwell Semiconductor Systems, Inc. Method of multi-media transaction processing
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
EP1044422A1 (en) 1998-09-17 2000-10-18 Koninklijke Philips Electronics N.V. Customized upgrading of internet-enabled devices based on user-profile
US6993774B1 (en) * 1998-10-19 2006-01-31 Recursion Software, Inc. System and method for remote enabling classes without interfaces
US6321338B1 (en) 1998-11-09 2001-11-20 Sri International Network surveillance
KR20000037912A (ko) * 1998-12-03 2000-07-05 이계철 통신망 관리 시스템에서의 경보 처리 방법
US6718332B1 (en) 1999-01-04 2004-04-06 Cisco Technology, Inc. Seamless importation of data
US6459913B2 (en) 1999-05-03 2002-10-01 At&T Corp. Unified alerting device and method for alerting a subscriber in a communication network based upon the result of logical functions
US6260041B1 (en) 1999-09-30 2001-07-10 Netcurrents, Inc. Apparatus and method of implementing fast internet real-time search technology (first)
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
JP2001189749A (ja) * 2000-01-04 2001-07-10 Matsushita Electric Ind Co Ltd 通信システムにおける情報着信の通知方法及び情報着信通知システム、情報通信端末、並びに情報記録媒体
CA2298194A1 (en) * 2000-02-07 2001-08-07 Profilium Inc. Method and system for delivering and targeting advertisements over wireless networks
US20020040282A1 (en) 2000-03-22 2002-04-04 Bailey Thomas C. Drug monitoring and alerting system
KR20020007833A (ko) 2000-07-19 2002-01-29 이장원 전자 메일 광고 제공 시스템 및 그 방법
JP2002041960A (ja) * 2000-07-28 2002-02-08 Ameezu Kk E−Mail受信機能付き携帯型端末対象の検索及びアラートシステム
KR20020016258A (ko) 2000-08-25 2002-03-04 신용수 이-메일의 실시간 업데이트 시스템 및 방법
GB2368226B (en) 2000-10-17 2004-08-25 Hewlett Packard Co Helper entity for comuunication session
US6694337B1 (en) * 2000-10-26 2004-02-17 Intel Corporation Synchronizing databases
US7239860B2 (en) 2000-10-27 2007-07-03 Fulcit New Zealand Limited, a New Zealand Company of Hercus King & Company Method and apparatus for generating an alert message
IT1319602B1 (it) 2000-12-21 2003-10-20 Cit Alcatel Metodo per la gestione delle comunicazioni di eventi tra entita'di elaborazione di tipo agent e manager,in un sistema di gestione di
US20020198946A1 (en) 2001-01-16 2002-12-26 Yi-Min Wang Personal centralized alert delivery systems and methds of use
WO2002076077A1 (en) * 2001-03-16 2002-09-26 Leap Wireless International, Inc. Method and system for distributing content over a wireless communications system
US6753784B1 (en) 2001-03-28 2004-06-22 Meteorlogix, Llc GIS-based automated weather alert notification system
US7987510B2 (en) 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
KR20020084435A (ko) 2001-05-02 2002-11-09 (주)인포캐스트 인터넷 정보 자동 수집 방법 및 인터넷 정보 자동 수집용프로그램을 기록한 기록매체
US7200662B2 (en) 2001-07-06 2007-04-03 Juniper Networks, Inc. Integrated rule network management system
US6954781B2 (en) * 2001-08-01 2005-10-11 International Business Machines Corporation Messaging system for directing a server to convert voice message into text and appending a converted text message to another converted text message
US20030033179A1 (en) * 2001-08-09 2003-02-13 Katz Steven Bruce Method for generating customized alerts related to the procurement, sourcing, strategic sourcing and/or sale of one or more items by an enterprise
US6952714B2 (en) * 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US20030078858A1 (en) * 2001-10-19 2003-04-24 Angelopoulos Tom A. System and methods for peer-to-peer electronic commerce
US20040204988A1 (en) * 2001-11-16 2004-10-14 Willers Howard Francis Interactively communicating selectively targeted information with consumers over the internet
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US7904360B2 (en) 2002-02-04 2011-03-08 Alexander William EVANS System and method for verification, authentication, and notification of a transaction
US7096498B2 (en) 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
US6758088B2 (en) * 2002-04-22 2004-07-06 Dana Corporation Active adaptation of control algorithms for a central tire inflation system
US20040044774A1 (en) 2002-09-04 2004-03-04 Ruchi Mangalik System for providing content sharing and method therefor
US7293024B2 (en) * 2002-11-14 2007-11-06 Seisint, Inc. Method for sorting and distributing data among a plurality of nodes
WO2004046969A1 (en) * 2002-11-15 2004-06-03 Bigchampagne, Llc. Monitor file storage and transfer on a peer-to-peer network
US7526545B2 (en) 2003-01-17 2009-04-28 Relevant Media Llc Content distribution system
US20040143644A1 (en) * 2003-01-21 2004-07-22 Nec Laboratories America, Inc. Meta-search engine architecture
US7455590B2 (en) 2003-05-09 2008-11-25 Microsoft Corporation Sending messages in response to events occurring on a gaming service
US7346630B2 (en) 2003-06-13 2008-03-18 Yahoo! Inc. Method and system for delivery alerts to a user

Also Published As

Publication number Publication date
KR20060031624A (ko) 2006-04-12
EP1634202A4 (en) 2007-10-31
KR101037802B1 (ko) 2011-05-30
US20050027742A1 (en) 2005-02-03
US20080098014A1 (en) 2008-04-24
WO2004114109A1 (en) 2004-12-29
US7143118B2 (en) 2006-11-28
US7334001B2 (en) 2008-02-19
WO2004114159A1 (en) 2004-12-29
KR101161520B1 (ko) 2012-07-09
WO2004114120A1 (en) 2004-12-29
US20050027741A1 (en) 2005-02-03
KR20100130648A (ko) 2010-12-13
JP2007516511A (ja) 2007-06-21
US7346630B2 (en) 2008-03-18
US7765228B2 (en) 2010-07-27
US20050027676A1 (en) 2005-02-03
EP1634202A1 (en) 2006-03-15
CN1806242A (zh) 2006-07-19
CN100483405C (zh) 2009-04-29

Similar Documents

Publication Publication Date Title
KR101037802B1 (ko) 알림 전달 아키텍처를 위한 방법 및 시스템
US7734586B2 (en) Replication and synchronization of syndication content at an email server
US8453159B2 (en) Workspace system and method for monitoring information events
US7467183B2 (en) Method, apparatus, and user interface for managing electronic mail and alert messages
US7734587B2 (en) Syndication of content based upon email user groupings
US20040199912A1 (en) Method system and program product to retrieve and distribute information on demand
KR20030093871A (ko) 협업 메일 시스템

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J121 Written withdrawal of request for trial
WITB Written withdrawal of application