KR20080092481A - 알림 전달 아키텍처를 위한 방법 및 시스템 - Google Patents
알림 전달 아키텍처를 위한 방법 및 시스템 Download PDFInfo
- 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
Links
- 238000012384 transportation and delivery Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims description 43
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000003860 storage Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000013480 data collection Methods 0.000 abstract description 2
- 238000002716 delivery method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- WVMLRRRARMANTD-FHLIZLRMSA-N ram-316 Chemical compound C1=CCC[C@@]2(O)[C@H]3CC4=CC=C(OC)C(O)=C4[C@]21CCN3C WVMLRRRARMANTD-FHLIZLRMSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/60—Business processes related to postal services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client 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/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4755—End-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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4786—Supplemental services, e.g. displaying phone caller identification, shopping application e-mailing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4882—Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/44—Receiver circuitry for the reception of television signals according to analogue transmission standards
- H04N5/445—Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Computer Graphics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Information Transfer Between Computers (AREA)
Abstract
하나 이상의 포맷으로 이벤트 기반 피드 또는 시간 기반 피드로서 수신될 수 있는 콘텐츠에 기초하여 알림 메시지를 제공하기 위한 아키텍처가 개시되어 있다. 이 아키텍처는 상기 콘텐츠를 미리 정해진 데이터 구조로 정규화하고, 선택된 특징들에 따라서 상기 콘텐츠를 인덱싱하여 다량의 콘텐츠를 처리하기 위한 데이터 수집 처리 모듈(103)을 포함한다. 매칭 엔진(110)은 사용자 쿼리들을 이용하여, 상기 이벤트 기반 콘텐츠를 선택된 콘텐츠와 관련된 알림 메시지들을 수신하는 것에 관심을 표시한 하나 이상의 사용자들과 관련시킨다. 이 매칭 엔진은 또한 대응하는 알림 메시지들을 발생시킨다. 폴러(120)는 사용자들을 대신해서 소정의 주기로 콘텐츠를 페치하고 대응하는 알림 메시지를 발생시킨다. 전달 인터페이스(130)는 어느 알림 메시지들이 즉시 송신되어야 할지 그리고 어느 알림 메시지들이 나중의 전달을 위해 스케줄되어야 할지를 판정한다. 이 아키텍처는 범위성(scalability) 및 백업을 위하여 미러링된다(158).
알림 전달 아키텍처, 이벤트 기반 피드, 시간 기반 피드, 쿼리
Description
본 발명은 일반적으로 메시징에 관한 것으로, 보다 구체적으로는, 네트워크를 통한 알림의 전달을 가능케 하는 것에 관한 것이다.
[관련 출원들에의 상호 참조]
본 특허 출원은 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 데이터 구조로 정규화된다.
Contact | 구문 분석 에러 및 데이터 불일치가 보고될 수 있는 이메일 주소 |
Country | 피드의 국가 코드 |
Date | 문서의 날짜 |
ExpirationDate | 콘텐츠의 만료 날짜 |
Url | url |
ArchiveUrl | 알림 피드 아카이브에 대한 url |
FeedProvider | 피드 제공자의 명칭(로이터, AP). 피드 제공자들은 구성 파일(config file)로부터 검증될 필요가 있다. |
Type | 피드의 유형. 이 필드는 편집 페이지들과 관련하여 작용한다. 편집 페이지는 각 알림을 특정 유형과 함께 저장한다. 각 알림 유형은 문자열로서, 예를 들면 재정/인용/실시간/개인 소식(personals)이다. |
Title | 문서의 제목 |
Alert_Data | 이 태그의 자식들(children)은 이메일 포맷팅을 위해 필요한 임의의 추가 데이터 및 태그들을 포함할 수 있다. 각각의 자식 태그는 키-값 쌍으로서 이메일 포맷팅 시스템에게 이용 가능할 것이다. |
다음 코드는 알림을 발생시키기 위해 이용될 수 있는 교통 사건에 관한 샘플 정규화된 XML 콘텐츠 문서를 예시한다.
동작 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)
- 알림 메시지(alert message)를 액세스 가능하게 하기 위한 방법으로서,복수의 포맷으로 액세스 가능한 콘텐츠를 정규화(normalize)하는 단계와;상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 단계와;상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 단계와;상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 단계 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사(interest)와 관련됨 - 와;상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 단계 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 와;상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계를 포함하는 방법.
- 제1항에 있어서,이벤트 기반 피드(event based feed)로서 상기 콘텐츠를 수신하는 단계와;시간 기반 피드(time based feed)로서 상기 콘텐츠를 요구하는 단계중 적어도 하나를 더 포함하는 방법.
- 제1항에 있어서, 상기 콘텐츠를 정규화하는 단계는, 상기 복수의 포맷 중 어느 하나로부터 정규화된 포맷으로 상기 콘텐츠를 변환하는 것을 포함하는 방법.
- 제3항에 있어서, 상기 적어도 하나의 사용자가 상기 메시지를 액세스하는 것을 가능케 하는 단계는,상기 적어도 하나의 사용자에게 상기 알림 메시지를 즉시 전달하는 것과;상기 적어도 하나의 사용자에게 상기 알림 메시지를 미리 정해진 시간에 전달하는 것중 하나를 포함하는 방법.
- 제1항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 특징은,상기 콘텐츠가 수신된 시간;송신자의 ID(identifier);상기 콘텐츠의 유형;상기 콘텐츠가 송신된 국가;상기 콘텐츠가 폴 요구(poll request)와 관련되어 있는지의 표시; 및상기 콘텐츠가 이전에 수신된 콘텐츠와 관련되어 있는지의 표시중 적어도 하나를 포함하는 방법.
- 제1항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 단계는,쿼리 표현식(query expression)과 관련하여 상기 콘텐츠의 상기 적어도 하나의 부분을 평가하는 것 - 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사를 나타냄 - 과;상기 콘텐츠의 상기 적어도 하나의 부분이 상기 쿼리 표현식과 매칭하면, 상기 콘텐츠의 상기 적어도 하나의 부분과 상기 적어도 하나의 사용자 간의 관련(association)을 설정하는 것을 포함하는 방법.
- 제6항에 있어서, 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 사용자 프로파일(user profile)로부터 액세스되는 방법.
- 제1항에 있어서,상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 단계가 서비스 레벨의 품질에 따라서 수행되는 것과;상기 알림 메시지를 발생시키는 단계가 서비스 레벨의 품질에 따라서 수행되는 것과;상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계가 서비스 레벨의 품질에 따라서 수행되는 것중 적어도 하나인 방법.
- 제1항에 있어서, 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계는,이메일 메시지;인스턴스 메시지;숏 메시지 서비스 메시지; 및음성 메시지중 적어도 하나로서 상기 알림 메시지를 전달하는 것을 포함하는 방법.
- 제1항에 있어서,상기 콘텐츠 내에 필요한 데이터가 포함되어 있는지를 검증 확인(validate)하는 단계와;논리 동작에 따라서 상기 콘텐츠를 변환하여 상기 콘텐츠의 특징을 표현하는 단계와;상기 콘텐츠의 수신 파라미터들을 로깅하는 단계와;상기 콘텐츠를 저장하는 단계와;다른 콘텐츠에 관련하여 상기 콘텐츠를 우선 순위화(prioritize)하는 단계와;상기 콘텐츠의 복제본(duplicate)을 버리는 단계중 적어도 하나를 더 포함하는 방법.
- 제1항에 있어서, 정규화하고, 관련시키고, 발생시키고, 가능케 하는 상기 동작들을 미러링(mirroring)하는 단계를 더 포함하는 방법.
- 컴퓨팅 디바이스가 이하의 방법을 수행할 수 있도록 하는 컴퓨터 판독가능 명령어들을 저장하는 휘발성 및/또는 비휘발성 저장소를 포함하는 컴퓨터 판독가능 매체로서, 상기 방법은,복수의 포맷으로 액세스 가능한 콘텐츠를 정규화(normalize)하는 단계와;상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 단계와;상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있 는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 단계와;상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 단계 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사(interest)와 관련됨 - 와;상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 단계 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 와;상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 단계를 포함하는, 컴퓨터 판독가능 매체.
- 알림 메시지를 액세스 가능하게 하기 위한 시스템으로서,콘텐츠를 액세스하고 알림 메시지를 통신하기 위한 통신 인터페이스와;상기 통신 인터페이스와 통신하는 프로세서와;상기 프로세서와 통신하고, 상기 프로세서로 하여금,복수의 포맷으로 액세스 가능한 콘텐츠를 정규화하는 것과;상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하는 것과;상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경(revision)을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 것과;상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 것 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사와 관련됨 - 과;상기 적어도 하나의 사용자에 대한 알림 메시지를 발생시키는 것 - 상기 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고, 상기 적어도 하나의 사용자는 상기 알림 메시지를 수신하기로 선택하였음 - 과;상기 적어도 하나의 사용자에 의해 미리 정해진 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 것을 포함하는 복수의 기능을 수행하게 하는 명령어들 및 데이터를 저장하는 메모리를 포함하는 시스템.
- 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,이벤트 기반 피드로서 상기 콘텐츠를 수신하는 것과;시간 기반 피드로서 상기 콘텐츠를 요구하는 것중 적어도 하나의 동작을 수행하게 하는 시스템.
- 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,상기 복수의 포맷 중 어느 하나로부터 정규화된 포맷으로 상기 콘텐츠를 변환하는 것과;상기 콘텐츠 내에 필요한 데이터가 포함되어 있는지를 검증 확인하는 것과;논리 동작에 따라서 상기 콘텐츠를 변환하여 상기 콘텐츠의 특징을 표현하는 것과;상기 콘텐츠의 수신 파라미터들을 로깅하는 것과;상기 콘텐츠를 저장하는 것과;다른 콘텐츠와 관련하여 상기 콘텐츠를 우선 순위화하는 것과;상기 콘텐츠의 복제본을 버리는 것중 적어도 하나의 동작을 수행하게 하는 시스템.
- 제13항에 있어서, 상기 콘텐츠의 상기 적어도 하나의 특징은,상기 콘텐츠가 수신된 시간;송신자의 ID;상기 콘텐츠의 유형;상기 콘텐츠가 송신된 국가;상기 콘텐츠가 폴 요구와 관련되어 있는지의 표시; 및상기 콘텐츠가 이전에 수신된 콘텐츠와 관련되어 있는지의 표시중 적어도 하나를 포함하는 시스템.
- 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,쿼리 표현식과 관련하여 상기 콘텐츠의 상기 적어도 하나의 부분을 평가하는 동작 - 상기 쿼리 표현식은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사를 나타냄 - 과;상기 콘텐츠의 상기 적어도 하나의 부분이 상기 쿼리 표현식과 매칭하면, 상기 콘텐츠의 상기 적어도 하나의 부분과 상기 적어도 하나의 사용자 간의 관련을 설정하는 동작을 수행하게 하는 시스템.
- 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,상기 콘텐츠의 상기 적어도 하나의 부분을 관련시키는 것이 서비스 레벨의 품질에 따라서 수행되고;상기 알림 메시지를 발생시키는 것이 서비스 레벨의 품질에 따라서 수행되고;상기 적어도 하나의 사용자가 상기 알림 메시지를 액세스하는 것을 가능케 하는 것이 서비스 레벨의 품질에 따라서 수행되는동작들을 수행하게 하는 시스템.
- 제13항에 있어서, 상기 명령어들은 또한 상기 프로세서로 하여금,상기 적어도 하나의 사용자에게 상기 알림 메시지를 즉시 전달하는 동작과;상기 적어도 하나의 사용자에게 상기 알림 메시지를 미리 정해진 시간에 전달하는 동작을 수행하게 하는 시스템.
- 제13항에 있어서, 상기 알림 메시지를 수신하기 위한 모바일 클라이언트 장치(mobile client device)를 더 포함하는 시스템.
- 제13항에 있어서,상기 통신 인터페이스와 통신하고, 또한 상기 콘텐츠를 액세스하고 미러링된 알림 메시지를 통신하기 위해 구성된 미러링된 통신 인터페이스(mirrored communication interface)와;상기 미러링된 통신 인터페이스와 통신하는 미러링된 프로세서와;상기 미러링된 프로세서와 통신하고, 상기 미러링된 프로세서로 하여금,복수의 포맷으로 액세스 가능한 상기 콘텐츠를 정규화하는 것과;상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하 는 것과;상기 콘텐츠의 적어도 하나의 부분을 적어도 하나의 사용자와 관련시키는 것 - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 적어도 하나의 미리 결정된 관심사와 관련됨 - 과;상기 적어도 하나의 사용자에 대한 미러링된 알림 메시지를 발생시키는 것 - 상기 미러링된 알림 메시지는 상기 콘텐츠의 상기 적어도 하나의 부분과 관계가 있고 상기 미러링된 알림 메시지는 상기 알림 메시지와 실질적으로 동등함 - 과;상기 적어도 하나의 사용자에 의해 미리 정해진 상기 적어도 하나의 전달 메커니즘으로 상기 적어도 하나의 사용자가 상기 미러링된 알림 메시지를 액세스하는 것을 가능케 하는 것을 포함하는 복수의 기능을 수행하게 하는 명령어들 및 데이터를 저장하는 미러링된 메모리를 더 포함하는 시스템.
- 메시지를 제공하기 위한 시스템으로서,적어도 하나의 콘텐츠 소스와 인터페이스하고, 복수의 포맷으로 콘텐츠를 액세스하고, 상기 콘텐츠의 적어도 하나의 부분을 정규화된 포맷으로 정규화하고, 상기 콘텐츠의 적어도 하나의 특징에 따라서 상기 콘텐츠를 인덱싱하고, 상기 적어도 하나의 특징을 사용하여 상기 적어도 하나의 특징에 인덱싱되어 이전에 저장되어 있는 콘텐츠가 존재하는지를 판단하고, 상기 이전에 저장되어 있는 콘텐츠가 존재한다면, 상기 콘텐츠가 상기 이전에 저장되어 있는 콘텐츠의 변경을 포함하고 상기 이전에 저장되어 있는 콘텐츠가 아직 알림 메시지로 전달되지 않은 경우 상기 이전에 저장되어 있는 콘텐츠를 평가하여 상기 이전에 저장되어 있는 콘텐츠의 적어도 일부를 교체하는 수집 처리 모듈(collection processing module)과;상기 수집 처리 모듈과 통신하고, 상기 콘텐츠의 상기 적어도 하나의 부분이 이벤트 기반 피드에 대응할 경우 상기 콘텐츠의 상기 적어도 하나의 부분을 갖는 알림 메시지를 발생시키는 매칭 엔진(matching engine) - 상기 콘텐츠의 상기 적어도 하나의 부분은 적어도 하나의 사용자의 적어도 하나의 관심사에 기초하여 상기 적어도 하나의 사용자와 관련됨 - 과;상기 수집 처리 모듈과 통신하고, 상기 콘텐츠의 상기 적어도 하나의 부분이 시간 기반 피드에 대응할 경우 상기 콘텐츠의 상기 적어도 하나의 부분을 갖는 알림 메시지를 발생시키는 폴러(poller) - 상기 콘텐츠의 상기 적어도 하나의 부분은 상기 적어도 하나의 사용자의 상기 적어도 하나의 관심사에 기초하여 상기 적어도 하나의 사용자와 관련됨 - 와;상기 매칭 엔진 및 상기 폴러와 통신하고, 상기 적어도 하나의 사용자에 의해 미리 정해진 데이터 구조에 따라서 상기 적어도 하나의 사용자에게 상기 알림 메시지를 전달하는 전달 인터페이스(delivery interface)를 포함하는 시스템.
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) | WO2004114109A1 (ko) |
Families Citing this family (221)
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 |
CN1627851A (zh) * | 2003-12-09 | 2005-06-15 | 三星电子株式会社 | 在无线电话中利用动漫形象来告警日程的方法 |
ATE527788T1 (de) * | 2004-01-14 | 2011-10-15 | Research In Motion Ltd | System und verfahren zur drahtlosen provisionierung eines mobilkommunikationsgeräts |
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 |
US7640322B2 (en) * | 2004-02-26 | 2009-12-29 | 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 |
US20060155750A1 (en) | 2004-08-12 | 2006-07-13 | Fowler James F | System to generate unpublished corporate data |
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 |
MX2008010979A (es) * | 2006-02-27 | 2009-01-23 | Vonage Holdings Corp | Metodo y sistema para transferencia de datos bidireccional. |
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 |
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 |
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 |
US8280982B2 (en) | 2006-05-24 | 2012-10-02 | Time Warner Cable Inc. | Personal content server apparatus and methods |
US9386327B2 (en) * | 2006-05-24 | 2016-07-05 | Time Warner Cable Enterprises Llc | Secondary content insertion 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 |
US8224904B2 (en) * | 2006-09-29 | 2012-07-17 | Microsoft Corporation | Missed instant message notification |
US8589239B2 (en) * | 2006-09-29 | 2013-11-19 | Ebay Inc. | Real-time bidding using instant messaging clients |
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 |
US8943128B2 (en) * | 2006-12-21 | 2015-01-27 | Bce Inc. | 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 |
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 |
US20080167908A1 (en) * | 2007-01-05 | 2008-07-10 | Carl De Marcken | Notification service for presenting travel 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 |
US7711587B2 (en) * | 2007-01-05 | 2010-05-04 | Ita Software, Inc. | Providing travel information using cached query answers |
US20080167906A1 (en) * | 2007-01-05 | 2008-07-10 | De Marcken Carl | Support for flexible travel planning |
US20080167907A1 (en) * | 2007-01-05 | 2008-07-10 | Carl De Marcken | Cache poller for providing travel planning information |
US20080167909A1 (en) * | 2007-01-05 | 2008-07-10 | De Marcken Carl | Updating a database of travel information |
US20080168093A1 (en) * | 2007-01-05 | 2008-07-10 | De Marcken Carl | Providing travel information using a layered cache |
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 |
WO2008083504A1 (en) * | 2007-01-10 | 2008-07-17 | Nick Koudas | 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 |
US8068821B2 (en) * | 2007-03-29 | 2011-11-29 | Alcatel Lucent | Method and apparatus for providing content to users using unicast and broadcast wireless networks |
US8041780B2 (en) * | 2007-03-29 | 2011-10-18 | Alcatel Lucent | Method and apparatus for dynamically pushing content over 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 |
WO2009009757A1 (en) * | 2007-07-11 | 2009-01-15 | Google Inc. | Processing digitally hosted volumes |
US7907930B2 (en) * | 2007-07-16 | 2011-03-15 | Cisco Technology, Inc. | Emergency alert system distribution to mobile wireless towers |
US20090063646A1 (en) * | 2007-09-04 | 2009-03-05 | 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 |
EP2304584A4 (en) | 2008-05-13 | 2011-11-09 | Cyandia Inc | APPARATUS AND METHODS FOR INTERACTING WITH MULTIPLE FORMS OF INFORMATION ON MULTIPLE TYPES OF COMPUTER 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 |
WO2011149558A2 (en) | 2010-05-28 | 2011-12-01 | Abelow Daniel H | 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 |
WO2012051539A2 (en) | 2010-10-14 | 2012-04-19 | 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 |
US8676892B2 (en) * | 2010-11-01 | 2014-03-18 | Google Inc. | Visibility inspector 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 |
US8849499B2 (en) * | 2011-01-06 | 2014-09-30 | Ford Global Technologies, Llc | Methods and systems for monitoring a vehicle's energy source |
US20110224852A1 (en) * | 2011-01-06 | 2011-09-15 | Ford Global Technologies, Llc | Methods and system for selectively charging a vehicle |
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 |
US20130084009A1 (en) * | 2011-10-03 | 2013-04-04 | Steven W. Lundberg | Systems, methods and user interfaces in a patent management system |
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 |
AU2013243223A1 (en) * | 2012-04-04 | 2014-09-25 | Not Now Pty Ltd | An electronic message management system |
EP2845121B1 (en) * | 2012-04-30 | 2020-10-14 | 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 |
US20150269216A1 (en) * | 2012-09-24 | 2015-09-24 | Claremont Speede | Mobile sender controlled data access and data deletion method and system |
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 |
EP3233208A4 (en) * | 2014-12-17 | 2018-06-06 | Steven D. Jensen | Teeth whitening film utilizing tripolyphosphate salts |
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 |
US20180352295A1 (en) * | 2015-05-07 | 2018-12-06 | 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 |
EP3531321B1 (en) | 2015-09-15 | 2020-08-19 | 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 |
US12079748B2 (en) | 2016-12-01 | 2024-09-03 | Trovata, Inc. | Co-operative resource pooling system |
EP3535625B1 (en) | 2016-12-07 | 2021-02-24 | Arilou Information Security Technologies Ltd. | System and method for using signal waveform analysis for detecting a change in a wired network |
EP3652721A1 (en) | 2017-09-04 | 2020-05-20 | NNG Software Developing and Commercial LLC | A method and apparatus for collecting and using sensor data from a vehicle |
WO2019050697A1 (en) * | 2017-09-06 | 2019-03-14 | Siemens Healthcare Diagnostics Inc. | INTEGRATION OF PASSIVE APPLICATION ACTIVATED BY ALERT |
KR102362690B1 (ko) * | 2017-09-20 | 2022-02-14 | 주식회사 케이티 | 웨어러블 디바이스와 연동하여 알림 서비스를 제공하는 사용자 단말, 방법 및 컴퓨터 프로그램 |
US12111860B1 (en) * | 2017-12-06 | 2024-10-08 | Dennis J M Donahue, III | Patent application preparation system and template creator |
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 |
US11522731B2 (en) * | 2018-07-19 | 2022-12-06 | Bank Of Montreal | Systems and methods for alert services |
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)
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 |
JP4334617B2 (ja) | 1995-05-08 | 2009-09-30 | クランベリー、プロパティーズ、リミテッド、ライアビリティー、カンパニー | 無線装置を介した電子メッセージ通信システム |
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 |
WO2000017789A1 (en) | 1998-09-17 | 2000-03-30 | 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 |
GB2388945B (en) | 2000-10-27 | 2004-12-15 | Fulcit New Zealand Ltd | 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 |
US7987510B2 (en) * | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
US6753784B1 (en) * | 2001-03-28 | 2004-06-22 | Meteorlogix, Llc | GIS-based automated weather alert notification system |
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 |
CA2506168A1 (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 |
-
2004
- 2004-06-11 US US10/866,066 patent/US7346630B2/en active Active
- 2004-06-11 US US10/866,065 patent/US7334001B2/en active Active
- 2004-06-11 US US10/866,064 patent/US7143118B2/en not_active Expired - Lifetime
- 2004-06-12 JP JP2006533708A patent/JP2007516511A/ja active Pending
- 2004-06-12 EP EP04754967A patent/EP1634202A4/en not_active Ceased
- 2004-06-12 KR KR1020087023608A patent/KR20080092481A/ko not_active Application Discontinuation
- 2004-06-12 CN CNB2004800164970A patent/CN100483405C/zh not_active Expired - Fee Related
- 2004-06-12 KR KR1020057023871A patent/KR101037802B1/ko active IP Right Grant
- 2004-06-12 KR KR1020107026714A patent/KR101161520B1/ko active IP Right Grant
- 2004-06-12 WO PCT/US2004/018543 patent/WO2004114109A1/en active Application Filing
- 2004-06-12 WO PCT/US2004/018541 patent/WO2004114159A1/en active Application Filing
- 2004-06-12 WO PCT/US2004/018542 patent/WO2004114120A1/en active Application Filing
-
2007
- 2007-12-20 US US11/961,953 patent/US7765228B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US7346630B2 (en) | 2008-03-18 |
US20050027741A1 (en) | 2005-02-03 |
JP2007516511A (ja) | 2007-06-21 |
CN100483405C (zh) | 2009-04-29 |
US20050027676A1 (en) | 2005-02-03 |
US7334001B2 (en) | 2008-02-19 |
US7143118B2 (en) | 2006-11-28 |
KR20060031624A (ko) | 2006-04-12 |
US7765228B2 (en) | 2010-07-27 |
WO2004114109A1 (en) | 2004-12-29 |
WO2004114120A1 (en) | 2004-12-29 |
KR20100130648A (ko) | 2010-12-13 |
US20080098014A1 (en) | 2008-04-24 |
EP1634202A1 (en) | 2006-03-15 |
WO2004114159A1 (en) | 2004-12-29 |
KR101161520B1 (ko) | 2012-07-09 |
KR101037802B1 (ko) | 2011-05-30 |
CN1806242A (zh) | 2006-07-19 |
US20050027742A1 (en) | 2005-02-03 |
EP1634202A4 (en) | 2007-10-31 |
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 | |
AU770242B2 (en) | System and method of presenting channelized data | |
US7734587B2 (en) | Syndication of content based upon email user groupings | |
US20020133477A1 (en) | Method for profile-based notice and broadcast of multimedia content | |
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 |