KR101049501B1 - 모듈러 이벤트-구동 처리 - Google Patents

모듈러 이벤트-구동 처리 Download PDF

Info

Publication number
KR101049501B1
KR101049501B1 KR20077006143A KR20077006143A KR101049501B1 KR 101049501 B1 KR101049501 B1 KR 101049501B1 KR 20077006143 A KR20077006143 A KR 20077006143A KR 20077006143 A KR20077006143 A KR 20077006143A KR 101049501 B1 KR101049501 B1 KR 101049501B1
Authority
KR
South Korea
Prior art keywords
thread
boundary
thread boundary
task
boundaries
Prior art date
Application number
KR20077006143A
Other languages
English (en)
Other versions
KR20070057838A (ko
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 KR20070057838A publication Critical patent/KR20070057838A/ko
Application granted granted Critical
Publication of KR101049501B1 publication Critical patent/KR101049501B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/56Provisioning of proxy services

Abstract

복수의 스레드 경계들의 각각은 단일 스레드에 의해 주어진 이벤트에 대해 수행될 기능을 포함한다. 라우팅될 수 있는 이벤트들을 통해 복수의 큐들이 스레드 경계들에 결합될 수 있다. 복수의 태스크들이 정의된 관계로 구성될 수 있고, 각 태스크는 스레드 경계와 관련되며, 특정 함수를 수행하기 위한 코드의 유닛을 포함한다. 리소스들은 큐 길이에 기초한 스레드 경계에 할당될 수 있다.
Figure R1020077006143
리소스, 스레드, 태스크, 할당

Description

모듈러 이벤트-구동 처리{MODULAR EVENT-DRIVEN PROCESSING}
관련 출원들에 대한 상호 참조들
본 출원은 2004년 8월 17일에 출원된 "실시간 라우팅 네트워크, 모듈러 이벤트-구동 아키텍처, 모듈러 이벤트-구동 처리 및 운영 시스템이 활성인 동안 시스템 메모리를 테스트하는 뷰어 장애 극복을 갖는 전달 개인화된 콘텐츠에 대한 기술(TECHINIQUES FOR DELIVERING PERSONALIZED CONTENT WITH A REAL-TIME ROUTING NETWORK, MODULAR EVENT-DRIVEN ARCHITECTURE, MODULAR EVENT-DRIVEN PROCESSING AND VIEWER FAILOVER TESTING A SYSTEM MEMORY WHILE AN OPERATING SYSTEM IS ACTIVE)"로 표제된 동시 계속 중인 미국 가특허출원 제60/602,539호로부터 우선권을 주장하며, 이는 모든 목적을 위해 본 명세서에 완전히 설명되는 바와 같이, 참조로서 통합된다.
본 개시의 실시예들은 일반적으로 모듈러, 이벤트 구동 방식으로 컴퓨팅 서비스들을 제공하는 것, 및 높은 성능의 컴퓨팅에 관한 것이다.
컴퓨팅 디바이스는 요청들을 처리하기 위한 제한된 수의 리소스들을 가질 수 있다. 요청들을 효율적으로 처리하기 위해서, 디바이스는 리소스들을 어떻게 요청들에 할당할지를 관리할 필요가 있다. 리소스가 요청에 할당될 때, 요청이 처리될 수 있다. 디바이스들은 특정 이유로 요청들이 크게 증가하는 것을 알 수 있다. 예를 들면, 많은 사용자들에게 웹 사이트에 대한 웹 페이지들을 제공하는 서버는 사용자로부터 웹 페이지들에 대한 수많은 요청들을 수신할 수 있다. 사용자들은 리소스들이 효율적인 방법으로 요청에 할당될 수 없다면, 지연을 알 수 있다.
일 실시예에 있어서, 모듈러 이벤트 구동 처리는 복수의 스레드 경계들을 제공하고, 각각의 스레드 경계는 단일 스레드에 의해 제공된 이벤트에 대해 수행될 기능성을 포함한다. 복수의 큐(queue)들은 스레드 경계들에 통신으로 연결되어, 스레드 경계들은 이벤트들이 라우팅될 수 있는 큐들에 의해 접속될 수 있다. 스레드 경계들로의 계산 기능성의 분할은 예민할 수 있는 부분들의 식별이 로딩될 수 있게 하는데, 이는 대응하는 큐들이 가득찰 수 있기 때문이다. 그 후, 스레드들과 같은 계산 리소스들은 큐 깊이에 기초하여 스레드 경계들로 동적으로 할당된다.
복수의 태스크들은 서비스를 제공하기 위해 정의된 관계에 있을 수 있으며, 각각의 태스크는 스레드 경계와 연관될 수 있고, 특정 함수를 수행하기 위한 코드의 단위를 포함한다. 복수의 서비스 유틸리티들이 또한 제공될 수 있으며, 여기서 각각의 서비스 유틸리티는 다수의 태스크들에 의해 접근할 수 있는 유틸리티를 포함한다. 몇몇의 실시예들에 있어서, 태스크들 및 그것들 간의 정의된 관계는 시스템 자체에 외적으로 고레벨로 기술될 수 있고, 고레벨 기술에 따를 수 있다. 몇몇의 실시예들에 있어서, 이러한 고레벨 기술은 확장가능 마크업 언어(Extensible Markup Language: XML)와 같은, 평서형 언어(declarative language)일 수 있다. 이러한 고레벨 외적 기술은 태스크들 및 그들 간의 관계에 대한 동적인 구성뿐만 아니라 그로부터의 인증을 가능하게 한다.
도 1은 일 실시예에 따른 시스템의 고레벨 개요를 도시한 블록도.
도 2는 일 실시예에 따른 암호화 및 인출 메시지를 전송할 수 있는 네 개의 태스크들의 예를 도시한 블록도.
도 3은 일 실시예에 따른 태스크들 및 그들간의 관계에 대한 고레벨 기술을 처리하기 위한 단계들을 도시한 흐름도.
도 4는 일 실시예에 따른 관리 모듈의 고레벨 개요를 도시한 블록도.
도면들은 단지 예시의 목적을 위해 몇몇의 실시예들을 설명한다. 이 기술분야의 숙련자들은 본 명세서에 예시된 구조들 및 방법들의 대안적인 실시예들이 사용될 수 있음을 다음의 설명으로부터 쉽게 인지할 수 있다.
본 명세서에 개시된 개시의 특성 및 이점들에 대한 더 나은 이해는 명세들의 나머지 부분 및 첨부된 도면들을 참조하여 이루어질 수 있다.
도 1은 일 실시예에 따른 시스템(101)의 고레벨 개요를 도시한다. 시스템(101)은 정보를 처리하는 임의의 계산 디바이스에 제공될 수 있다. 예를 들면, 시스템(101)은 서버 또는 라우터에 포함될 수 있다.
시스템(101)은 몇몇의 기능성(예를 들면, 서비스)을 제공한다. 기능성은 복수의 스레드 경계들(103)로 나뉘어질 수 있으며, 각 스레드 경계(103)는 원하는 기능을 위한 애플리케이션 로직의 부분으로 캡슐화할 수 있다. 스레드 경계들은 스레드 경계 큐들(105)에 의해 접속될 수 있다. 이벤트들(107)(예를 들면, 서비스에 대한 요청들 및 메시지들)은 스레드 경계 큐들(105)을 통해 스레드 경계들(103)로 입력 및 그들로부터 출력될 수 있다.
이벤트는 요청될 수 있는 임의의 처리일 수 있다. 이벤트(107)의 일 예는 원격의 클라이언트에 의한 서비스에 대한 요청일 수 있다. 예를 들면, 클라이언트는 로그인을 위해 요청할 수 있고, 이러한 경우, 시스템(101)(예를 들면, 서버)은 클라이언트의 자격을 확인하고 그 후 적절한 동작을 취할 필요가 있다. 몇몇의 실시예에 따르면, 시스템(101)은 이러한 요청들을 이벤트(107)로서 캡슐화하고 이것들을 스레드 경계들(103)의 체인을 통해 전달함으로써 이러한 요청을 처리할 수 있으며, 이들 각각은 서비스의 작은 부분을 수행하고, 궁극적으로 검증 또는 로그인의 거절을 출력할 수 있을 것이다. 이벤트들의 다양한 다른 예들은 이러한 명세들에 비추어 본 기술분야의 숙련자들에게 명백할 것이며, 예로써 이벤트들은 데이터베이스로부터 레코드들에 대한 요청을 처리하고, 인입하는 이메일 메시지를 처리하고, 인출하는 인코딩된 데이터를 처리하고, 인출하는 에러 메시지를 전송하며, 웹 페이지들에 대한 요청들을 처리하는 것 등을 포함할 수 있다.
서버와 같은 계산 시스템은 상당한 수의 이벤트들을 동시에 처리할 필요가 있을 수 있다. 그러므로, 스레드 경계들(103) 간의 이벤트들(107)은 스레드 경계 큐들(105)에 존재할 수 있다. 스레드 경계(103) 내에, 단일 스레드는 이벤트(107)를 처리할 수 있다. 그러나, 일단 제 1 스레드 경계(103)가 이벤트(107)에 대한 처리를 완료하고, 그 이벤트(107)를 큐(105)에 배치하면, 또 다른 스레드는 이벤트(107)를 발견하여 다음 스레드 경계(103)를 통해 그것을 움직인다.
도 1은 두 개의 스레드 경계들(103)을 예시하지만, 임의의 수의 스레드 경계들이 제공될 수 있다. 많은 계산 시스템들은 복잡한 기능들을 제공하고, 그것들은 원하는 만큼 많은 스레드 경계들(103)로 나누어질 수 있다. 스레드 경계들(103)로의 기능의 분할뿐만 아니라 사용할 스레드 경계들(103)의 수는 상이할 수 있다. 많은 변경들이 이러한 명세들에 비추어 관련 기술 분야의 숙련자들에게 명백할 것이다.
스레드 경계들(103)로의 기능의 분할은 로딩에 예민할 수 있는 부분들의 식별을 가능하게 하며, 이는 대응하는 스레드 경계 큐들(105)이 가득찰 수 있기 때문이다. 몇몇의 실시예들에 있어서, 리소스 할당 모듈(109)은 스레드 경계 큐들(105)을 감시하고, 큐 깊이에 기초하여 대응하는 스레드 경계들(103)에 계산 리소스들을 할당한다. 예를 들면, 제 1 큐(105) 및 제 2 큐(105)에 유지될 많은 이벤트들이 결정될 수 있다. 리소스들은 각각 제 1 큐(105) 및 제 2 큐(105)에 유지될 이벤트들의 수에 기초하여 할당될 수 있다. 예를 들면, 제 1 큐(105)가 제 2 큐(105)보다 더 길다면, 보다 많은 리소스들이 제 1 스레드 경계(103)에 할당될 것이다. 따라서, 스레드 경계(103)의 부하는 리소스들을 동적으로 할당하는 방법을 결정하기 위해 사용될 수 있다. 비록 큐 길이가 설명되었지만, 스레드 경계(103)에 의해 처리될 많은 이벤트들을 사용하는 것과 같은, 부하를 결정하는 다른 기술이 사용될 수 있음을 이해할 수 있다. 도 1에 도시된 실시에에 있어서, 리소스 할당 모듈(109)은 중심에 위치될 수 있고, 따라서 스레드 경계들(103) 및 큐들(105)에 의해 캡슐화된 애플리케이션 로직으로부터 분리할 수 있다.
몇몇의 실시예들에 있어서, 리소스 할당 모듈(109)은 인바운드 큐들(105)의 길이 또는 원하는 다른 메트릭들에 따라서 스레드 풀(111)로부터 스레드 경계들(103)로 스레드들을 할당한다. 관련 기술 분야에서의 숙련자들에 의해 이해될 수 있는 바와 같이, 각각의 이벤트(107)는 스레드 경계(103) 내의 단일 스레드(또는 다수의 스레드들)에 의해 처리될 수 있다. 다수의 이벤트들(107)은 동일한 경계(103)를 통해 병렬로 처리될 수 있고, 이러한 병렬 이벤트(107) 처리는 원하는 만큼의 다수의 스레드들(일 실시예에서 이벤트(107) 당 단지 하나)에 의해 수행될 수 있다.
따라서, 다른 경우 병목(bottleneck)이 될 수 있는 시스템(101)의 부분들은 더 많은 리소스들을 수신할 수 있고, 그로 인해 애플리케이션의 흐름을 매끄럽게 하고 성능을 향상시킨다. 할당은 동적일 수 있기 때문에, 리소스 할당 모듈(109)은 다양한 조건들에 대응할 수 있다. 시스템(101)이 엄청난 양의 특정 유형의 요청들을 수신하면, 예로써, 정상적으로 병목이 아닐 수 있는 부분이 과부하될 수 있다. 이러한 환경들 하에서, 리소스 할당 모듈(109)은 계산 리소스 할당을 동적으로 변경함으로써 적절히 반응할 수 있다. 이것은 스레드 경계들로의 처리 분할이 단일 요청을 하나의 스레드에 할당하는 것을 포함하지 않을 수 있고, 그 후 요청에 대한 모든 처리를 수행하기 때문에 이점들을 제공한다. 각 요청은 그것이 요청할 수 있는 리소스들에 대하여 동일한 것으로서 처리될 수 없다. 이벤트들이 큐잉할 수 있는 스레드 경계들에 형성된 시스템(101)은 로딩하기 위해 그 자체를 조정할 수 있다. 따라서, 시스템(101)의 내부 성능은 감시되고, 부하에 응답하여 조정될 수 있다.
또한, 시스템(101)은 어디에 리소스들을 할당할지를 결정하기 위해 스레드 경계들에 대한 큐들의 큐 길이를 사용할 수 있다. 이것은 시스템(101)이 이벤트들을 우선시키는 방법에 대한 복잡한 기능을 도입하지 않고 리소스들을 할당하도록 결정하게 한다.
리소스 할당 모듈(109)이 단일 엔티티로서 설명되었지만, 본 명세서에 사용될 용어로서, 리소스 할당 모듈(109)은 소프트웨어, 하드웨어, 펌웨어, 또는 이 세개의 임의의 조합으로서 구현될 수 있는 기능들의 집합체로서 언급될 수 있다. 리소스 할당 모듈(109)이 소프트웨어로 구현된다면, 그것은 독립형(standalone) 프로그램으로서 구현될 수 있고, 또한, 예로써 보다 큰 프로그램의 부분, 복수의 개별 프로그램들 또는 하나 이상의 정적 또는 동적으로 연결된 라이브러리들과 같은 다른 방법들로 구현될 수 있다.
도 1에 도시된 바와 같이, 각각의 스레드 경계(103)에 의해 캡슐화된 기능은 하나 이상의 태스크(113)에 의해 수행될 수 있다. 본 명세서에 사용될 수 있는 용어로서, 태스크(113)는 특정 함수를 수행하기 위한 임의의 코드 블록을 포함한다. 다수의 태스크들(113)은 원하는 계산 서비스들을 제공하기 위해 하나의 체인에 포함된다.
도 2는 메시지를 암호화 및 전송할 수 있는 네 개의 태스크들(113)의 단순한 예를 도시한다. 암호화 및 전송될 입력 메시지(201)는 태스크 1에 의해 수신될 수 있으며, 목적지 어드레스의 유효성을 검사한다. 목적지 어드레스가 유효하면, 태스크 3은 입력 메시지(201)를 암호화하고, 태스크 4는 목적지 어드레스로의 출력으로서 암호화된 메시지(203)를 전송한다. 다른 한편으로, 목적지 어드레스가 유효하지 않다면, 태스크 2는 태스크 4가 출력 메시지(203)로서 원래의 어드레스로 전송할 적당한 에러 메시지를 생성한다. 네 개의 태스크들에 의해 제공된 기능은 원하는 바대로 훨씬 더 큰 계산 시스템의 일부가 될 수 있다.
도 1로 돌아와서, 태스크들(113)은 스레드 경계들(103)보다 보다 조밀한 레벨의 입도(granularity)일 수 있다. 비록 스레드 경계(103)가 또한 단지 단일 태스크(113)만을 포함하도록 할 수 있지만, 다수의 태스크들(113)이 단일 스레드 경계(103) 내에 캡슐화될 수 있다. 특정 태스크들(113)은 특정 스레드 경계들(103)에 할당될 수 있다. 예를 들면, 도 1은 스레드 경계 1 내에 캡슐화된 것으로 태스크 1 및 태스크 2와 스레드 경계 2 내에 캡슐화된 것으로 태스크 3 내지 5를 도시한다. 다른 실시예들에 있어서, 태스크들 1 내지 5는 두 개 이상의 스레드 경계들(103) 간에 나누어질 수 있고, 또한 모든 다섯 개의 태스크들은 원하는 바와 같이 단일 스레드 경계 내에 캡슐화될 수 있다. 다양한 실시예들에 따라 스레드 경계들에 태스크들(113)을 할당하기 위한 많은 가능성들이 있을 수 있다. 이러한 명세들에 비추어 관련 기술 분야에 숙련자들에게 명백한 바와 같이, 태스크들(113)과 스레드 경계들(103)간의 관계는 원하는 바와 같이, 구성 변화들에 의해 설정 및 변경될 수 있다.
도 1에 도시된 바와 같이, 모든 원하는 기능이 태스크들(113)에 의해 수행될 수 있는 것은 아니다. 예를 들면, 특정 기능은 서비스 유틸리티들(115)에 의해 수행될 수 있으며, 이것은 다수의 태스크들(113)에 의해 사용될 수 있는 유틸리티들 일 수 있다. 표준 유틸리티들을 중심에 집중시킴으로써 효율성을 생성하는 것 이외에, 서비스 유틸리티들(115)은 다른 층의 유연성을 부가한다. 태스크들(113)이 인터페이스를 통해 서비스 유틸리티들(115)에 액세스하는 실시예에서, 그것에 의존하는 임의의 태스크들(113)의 변경 없이 서비스(115)의 구현들을 교환(swap)할 수 있다. 예를 들면, 많은 태스크들(113)이 로그 파일에 기록할 것을 요구한다면, 로깅 서비스가 제공될 수 있다. 태스크들(113)은 서비스 유틸리티들(115)을 통해 로깅 서비스를 액세스할 수 있다. 서비스들(115)은 상태를 저장하고, 따라서 이벤트에 대한 다수의 태스크들(113)을 사용할 수 있다.
서비스 유틸리티들(115)은 이벤트들(107)에 대한 기원 소스들(originating sources)로서 사용될 수 있다. 예를 들면, 클라이언트가 요청을 발행하면, 네트워크 프로토콜 서비스(115)는 요청을 이벤트(107)로서 패키징하고 이를 적절한 스레드 경계 큐에 삽입할 책임이 있고, 따라서 그 요청이 태스크 플로우에 들어가도록 한다. 이벤트들(107)이 서비스 유틸리티들(115)에 의해 생성되고 처리하기 위한 태스크들(113)로 전달될 수 있는 반면, 태스크들은 통상적으로 현존하는 이벤트들(107)을 변경하고 그것들을 다른 태스크들(113)로 포워딩한다.
몇몇의 실시예들에 있어서, 서비스 유틸리티들(115)은 상태를 저장할 수 있는 반면 태스크들(113)은 상태가 없을 수 있다(stateless). 현재 등록된 사용자들의 리스트는 예를 들면, 통상적으로 서비스(115)에 의해 제어될 수 있다. 태스크(113)는 서비스(115)에 대한 방법을 호출함으로써 리스트를 액세스할 수 있다. 비록 태스크들(113)이 상태가 없는 것으로서 설명되었지만, 태스크들(113)은 몇몇의 실시예들에서 상태를 저장할 수 있다.
일 실시예에 있어서, 태스크들(113)은 스레드들을 생성하지 않거나 스레드가 내부 태스크(113) 절차들을 제어할 수 있다는 것에 대한 임의의 지식을 가지지 않을 수 있다. 다른 한편으로, 서비스 유틸리티들(115)은 그것들이 상이한 스레드 경계들(103)에서 실행하는 다수의 태스크들(113)에 의해 액세스될 수 있기 때문에 스레드 안전성(thread-safe)일 수 있다. 따라서, 서비스 유틸리티들(115)은 다수의 스레드들에 의해 액세스될 수 있다.
태스크(113)를 활용할 때와 서비스(115)를 사용할 때는 다양할 수 있다. 몇몇의 실시예들에 있어서, 태스크들은 가능한 한 많이 사용될 수 있다. 이러한 실시예들에서, 서비스(115)는 많은 태스크들(113), 이벤트들(107)을 유발하는 구성 요소, 또는 상태를 관리하는 구성요소에 널리 미치는 유틸리티에 대해 사용될 수 있다. 다른 실시예들에서, 태스크들(113) 및/또는 서비스 유틸리티들(115)은 원하는 만큼의 보다 많은 또는 보다 적은 목적을 위해 사용될 수 있다. 용어 "태스크"와 "서비스"가 다양한 기능들을 설명하기 위해 본 명세서에 단지 사용될 수 있다는 것이 이러한 명세에 비추어 관련 기술 분야의 숙련자들에게 명백하다. 이들 기능들에 대한 특정 명명은 강제적이거나 중요하지 않을 수 있고, 다양한 실시예들 및/또는 그것의 특징들을 구현하는 메커니즘들은 상이한 이름들, 분할들 및/또는 포맷들을 가질 수 있다.
상기 설명된 바와 같이, 복수의 태스크들(113)은 서비스에 대한 원하는 기능을 제공하도록 정의된 관계에 있을 수 있다. 태스크들(113) 간의 정의된 관계는 제공될 기능에 따른다. 예를 들면, 태스크들(113)은 원하는 기능에 따라 상이하게 배열될 수 있다. 상술된 바와 같이, 태스크들(113)은 입력으로서 이벤트들(107)을 수 신하고, 그 후 동작들을 수행하며, 다른 처리를 위해 그 (가능하게 변형된) 이벤트들(107)을 다른 태스크들(113)로 전달한다. 태스크(113)는 이벤트(107)를 처리하는 방법 및/또는 그것을 어디에 전달할지를 그것의 콘텐츠들 또는 다른 인자들에 기초하여 결정할 수 있다.
특정 태스크들(113)은 특정 입력을 수신하고, 특정 처리를 실행하며, 특정 출력을 전송할 수 있다. 태스크(113)는 0 또는 그 이상의 입력들(달리 말하면, 태스크가 이벤트들(107)의 형태로 데이터를 수신하는 소스들) 및 0의 보다 많은 출력들을 가지고, 처리 후 태스크(113)가 이벤트들(107)을 전송하는 것을 통해 코드를 처리할 수 있다. 입력, 태스크(113)와 관련된 처리 및 출력은 태스크(113)에 대해 정의한 계약과 같은 것에 대해 생각할 수 있다. 소스 계약은 태스크들(113)의 입력을 통해 수신된 이벤트들(107)에 대한 제약사항들을 특정한다. 싱크 계약(sink contract)은 태스크(113)가 그것을 지나가는 이벤트들(107)에 대해 이루어지는 변화들을 설명한다. 용어 "입력", "출력", "소스 계약" 및 "싱크 계약"은 기본 기능을 설명하기 위해 본 명세서에 사용된 언어적 용어이다. 이러한 양상들 및 기능을 설명하기 위해 사용될 다른 명칭들이 심사숙고될 수 있다.
소스 계약과 싱크 계약의 예를 도시하기 위해, 클라이언트는 이벤트(107)(즉, 인증 요청)를 시스템(101)(즉, 서버)에 전송함으로써 사용자의 인증을 요청할 수 있다. 예시를 위해, 이벤트(107)는 "사용자 이름"이라 불리우는 스트링, "패스워드"라 불리우는 스트링을 포함한다고 가정한다. 이러한 이벤트(107)는 소스 계약이 "패스워드"라 불리는 스트링과 "사용자 이름"이라 불리는 스트링을 수신함을 특정하는 밸리데이터(validator) 태스크(113)에 전달될 수 있다. 태스크(113)는 사용자를 인증하기 위해 이들 스트링들을 사용할 수 있다. 인증 결과는 다양한 태스크들(113) 다운 스트림에 전달될 수 있고, 밸리데이터 태스크들(113)의 싱크 계약은 "유효"라 불리는 부울(Boolean)이 이벤트(107)에 부가됨을 특정할 수 있다. 다른 경우들에 있어서, 태스크들(113)의 싱크 계약은 이벤트(107)로부터 아이템들을 제거할 수 있다.
몇몇 실시예들에 있어서, 태스크들(113)과 그들간의 정의된 관계는 시스템 자체의 외부에서 고레벨로 기술될 수 있고, 고레벨 기술에 따라 구성될 수 있다. 몇몇 실시예들에 있어서, 이러한 고레벨 기술은 확장가능 마크업 언어(Extensible Markup Language: XML)과 같은, 평서형 언어이다. 고레벨 기술은 예를 들면, XML 구성 파일에 저장될 수 있다.
이러한 고레벨 외적 기술은 태스크들(113)의 동적인 구성과 그들 간의 관계뿐만 아니라 그로부터의 인증을 가능하게 한다. 이러한 명세에 비추어 관련 기술 분야의 숙련자들에게 쉽게 명백해지는 바와 같이, 태스크들(113)과 그들간의 정의된 관계에 대한 고레벨 기술은 태스크들(113)의 기능, 입력들 및 출력들, 소스 계약들 및 싱크 계약들뿐만 아니라 복수의 태스크들(113)이 원하는 기능을 제공하기 위해 함께 관련될 수 있는 방법과 스레드 경계들(103)에 대한 태스크들(113)의 할당에 대한 기술을 포함할 수 있다. 몇몇 실시예에 있어서, 보다 많거나 보다 적은 정보는 고레벨 기술에 포함될 수 있다.
도 3은 일 실시예에 따른 태스크들(113) 및 그들간의 관계에 대한 고레벨 기술을 처리하기 위한 단계들을 도시한다. 단계 301에서, 시스템(101)은 고레벨 기술(예로서, XML 구성 파일로부터)을 판독한다. 단계 303에서, 시스템(101)은 복수의 태스크들을 적절히 동적으로 구성한다.
태스크들(113) 및/또는 태스크들(113) 간의 관계에 대한 동적인 변경들이 고레벨 기술에 대한 대응 변경들을 만듦으로써 이루어질 수 있다. 단계 305에서, 시스템(101)은 고레벨 기술의 대응하는 변경들에 응답하여, 태스크(113)를 동적으로 변경할 수 있다. 게다가, 단계들 307 및 309에서, 시스템(101)은 고레벨 기술의 대응하는 변경들에 응답하여, 다수의 태스크들(113) 간의 정의된 관계, 또는 스레드 경계들(103)에 대한 태스크들의 할당을 동적으로 변경할 수 있다.
단계 311에서, 고레벨 기술은 또한 태스크들(113) 간의 정의된 관계가 논리적으로 일관될 수 있는지의 여부를 자동으로 결정하기 위해 사용될 수 있다. 이러한 결정은 예를 들면, 소스 및 싱크 계약들의 검증을 포함할 수 있다.
도 4는 일 실시예에 따른 관리 모듈(401)의 고레벨 개요를 도시한다. 도 4에 도시된 바와 같이, 몇몇 실시예에 있어서, 태스크들(113), 서비스 유틸리티들(115) 및 또는 스레드 경계들(103)은 이들 구성요소들이 관리 모듈(401)을 통해 감시 및 제어될 수 있도록 구현될 수 있다. 이러한 실시예들에서, 태스크(113) 및/또는 다른 구성요소들은 관리 모듈(401)에 통신으로 연결되고, 이들 태스크들(113)의 속성들(예로서, 활성 접속들의 수) 또는 다른 구성요소들은, 예를 들면, 그래픽 사용자 인터페이스(405) 또는 명령 라인(407), 또는 적절한 구성 파일을 통해 관리 모듈(401)로부터 감시되거나 또는 동적으로 변경될 수 있다.
이러한 일 실시예에서, 구성요소들과 관리 모듈(401)간의 상술된 통신은 Java Management Extension's(JMX) MBean 인터페이스들을 통해 수행될 수 있다. 이러한 실시예들에 있어서, 태스크들(113), 서비스 유틸리티들(115) 및/또는 스레드 경계들(103)은 MBean의 구현일 수 있고, 따라서, 관리 모듈(401)에 노출된 MBean 인터페이스를 자동으로 포함하고, 이것은 이러한 실시예들에서, JMX의 상부에 구성될 수 있다.
JMX는 구성요소들 자체로부터 구성 요소들의 관리, 유지, 및 감시를 분리한다. 이것은 애플리케이션의 관리 프론트-엔드가 교환가능하게 한다. 예로써, 서버와 같은 계산 시스템은 구성요소들을 감시 및 제어하기 위한 명령 라인 인터페이스(407) 및 웹 기반 그래픽 사용자 인터페이스(405) 모두를 갖고 패키징된 관리 모듈(401)을 포함할 수 있다. 이들 인터페이스들(405, 407)은 이러한 명세들에 비추어 이 기술분야의 숙련자들에게 명백해지는 방법으로, JMX에 의해 정의된 규칙들 및 인터페이스들을 사용하여 독립적으로 개발될 수 있다. 이들 인터페이스들(405, 407)은 이어서 또한 이러한 명세들에 비추어 이 기술분야의 숙련자들에게 명백한 방법으로, 태스크들(113), 서비스 유틸리티들(115), 및/또는 스레드 경계들(103)을 동적으로 구성하고 감시하기 위해 사용될 수 있다. 물론, 다른 실시예들은 원하는 바와 같이, JMX와는 다른 개발 환경들에서 구현될 수 있다.
이 기술분야의 숙련자들에 의해 이해되어지는 바와 같이, 개시는 그 사상 또는 본질적인 특징으로부터 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 마찬가지로, 모듈들, 특징들, 속성들, 방법론들 및 다른 양상들의 특정 명명 및 분할은 강제적이거나 또는 중요하지 않을 수 있으며, 실시예들 또는 그것의 특징들을 구현하는 메커니즘들은 상이한 명칭, 분할들 및/또는 포맷들을 가질 수 있다. 더욱이, 이 기술 분야의 숙련자들에게 명백한 바와 같이, 개시의 모듈들, 특징들, 속성들, 방법론들 및 다른 양상들은 소프트웨어, 하드웨어, 펌웨어 또는 그 셋의 임의의 조합으로써 구현될 수 있다. 구성요소가 소프트웨어로서 어디에 구현되든지, 구성 요소는 독립형 프로그램, 보다 큰 프로그램의 일부, 복수의 별개의 프로그램들, 정적 또는 동적으로 연결된 라이브러리, 커널 로딩 가능한 모듈, 장치 드라이버, 및/또는 컴퓨터 프로그래밍의 기술 분야에서의 숙련자들에게 현재 알려지거나 미래에 알려질 모든 및 임의의 다른 방법들로서 구현될 수 있다. 부가적으로, 실시예들은 임의의 특정 프로그래밍 언어, 또는 임의의 특정 운영 시스템 또는 환경에서의 구현에 제한되는 방법이 아닐 수 있다. 따라서, 개시는 개시의 범위에서 예시적으로 의도된 것으로 이에 제한되지 않으며, 다음의 청구항들에서 설명된다.
일 실시예에서, 용어 "및/또는"은 "및/또는"에 의해 연결된 요소들의 임의의 조합이 사용될 수 있음을 나타낸다. 예를 들면, "및/또는"을 사용하는 어구에서의 두 개의 단어들 또는 표현들은 하나 또는 다른 것 또는 둘 모두를 의미할 수 있다. 일 실시에에서, 용어 "실질적으로"는 크지만 특정되는 전체가 아닌 것 또는 특정되는 모든 것을 의미할 수 있다. 일 실시예에서, 용어 할 수 있다는 것은 구성되고, 적응되고, 할 수 있는 등을 의미할 수 있다. 예를 들면, 동작을 수행할 수 있다는 용어는 요소가 동작을 수행할 수 있고, 동작을 수행하도록 구성될 수 있고/있거나 동작을 수행하도록 적응될 수 있음을 의미할 수 있다.
실시예들은 소프트웨어 또는 하드웨어 또는 이 둘의 조합에서 제어 로직의 형태로 구현될 수 있다. 제어 로직은 일 실시예에서 개시된 단계들의 세트를 수행하기 위해 정보 처리 장치를 지시하도록 적응된 복수의 명령들로서 정보 저장 매체에 저장될 수 있다. 본 명세서에 제공된 개시 및 가르침들에 기초하여, 이 기술분야의 숙련자는 실시예들을 수행하기 위해 다른 방법들 및/또는 방법들을 이해할 수 있다.
상기 설명은 예시적이지만 제한적이지 않다. 개시의 많은 변경들이 개시의 검토하에 이 기술분야의 숙련자들에게 명백하다. 그러므로, 개시의 범위는 상기 설명을 참조하여서 결정되는 것이 아니며, 대신, 전체 사상 또는 동등물과 함께 청구항을 참조하여 결정되어야 한다.

Claims (35)

  1. 이벤트들을 처리하기 위한 방법에 있어서,
    프로세싱 디바이스를 이용하여 다수의 스레드 경계(thread boundary)들 내의 제 1 스레드 경계에서의 부하를 결정하는 단계로서, 상기 다수의 스레드 경계들은 하나 이상의 이벤트들에 대한 서비스를 수행할 수 있고, 상기 다수의 스레드 경계들 내의 적어도 하나의 스레드 경계는 적어도 하나의 태스크(task)를 포함하고, 상기 적어도 하나의 태스크는 상기 적어도 하나의 태스크가 수행할 수 있는 상기 서비스의 적어도 일부와 연관되고, 상기 다수의 스레드 경계들 내의 적어도 하나의 스레드 경계는 스레드 경계 큐(queue)를 통해 상기 다수의 스레드 경계들 내의 다른 스레드 경계에 접속되고, 상기 적어도 하나의 태스크는 상기 서비스의 상기 적어도 일부를 수행하기 위하여 정의된 관계(relationship)를 갖고, 상기 정의된 관계는 외부 구성 파일(external configuration file)에 저장되는 고레벨 언어 기술(high level language description)에 따라 동적으로 구성되는 것인, 상기 부하 결정 단계; 및
    상기 프로세싱 디바이스를 이용하여, 상기 결정된 부하에 기초하여 상기 제 1 스레드 경계에 하나 이상의 리소스들을 동적으로 할당하는 단계로서, 상기 하나 이상의 리소스들은 상기 제 1 스레드 경계의 상기 적어도 하나의 태스크가 상기 적어도 하나의 태스크와 관련된 상기 서비스의 상기 적어도 일부를 수행하게 하는, 상기 리소스 할당 단계를 포함하는, 이벤트들 처리 방법.
  2. 제 1 항에 있어서,
    상기 부하 결정 단계는 상기 제 1 스레드 경계가 처리할 필요가 있는 이벤트들의 개수에 기초하는 것인, 이벤트들 처리 방법.
  3. 제 2 항에 있어서,
    상기 스레드 경계 큐는 상기 개수의 이벤트들을 유지할 수 있는 것인, 이벤트들 처리 방법.
  4. 제 3 항에 있어서,
    상기 부하 결정 단계는 상기 스레드 경계 큐에 유지되는 이벤트들의 개수에 기초하여 결정되는 것인, 이벤트들 처리 방법.
  5. 제 2 항에 있어서,
    상기 제 1 스레드 경계는 상기 개수의 이벤트들에 대해 상기 서비스의 상기 적어도 일부를 수행할 수 있는 것인, 이벤트들 처리 방법.
  6. 제 2 항에 있어서,
    상기 다수의 스레드 경계들에서 제 2 스레드 경계에 대한 제 2 부하를 결정하는 단계; 및
    상기 결정된 제 2 부하에 기초하여 상기 제 2 스레드 경계에 제 2 세트의 하나 이상의 리소스들을 동적으로 할당하는 단계로서, 상기 제 2 세트의 하나 이상의 리소스들은 상기 제 2 스레드 경계의 적어도 하나의 태스크가 상기 서비스의 제2의 적어도 일부를 수행하게 하는 것인, 상기 리소스 할당 단계를 더 포함하는, 이벤트들 처리 방법.
  7. 제 6 항에 있어서,
    상기 제 2 부하 결정 단계는 상기 제 2 스레드 경계가 처리할 필요가 있는 이벤트들의 제2 개수에 기초하는 것인, 이벤트들 처리 방법.
  8. 제 6 항에 있어서,
    상기 제 1 스레드 경계의 부하 및 상기 제 2 스레드 경계의 제 2 부하는 얼마나 많은 리소스들이 상기 제 1 스레드 경계 및 상기 제 2 스레드 경계에 할당되는지를 결정하기 위해 사용되는 것인, 이벤트들 처리 방법.
  9. 제 1 항에 있어서,
    하나 이상의 리소스들을 상기 제 1 스레드 경계에 동적으로 할당하는 단계는, 상기 부하에 기초하여 상기 제 1 스레드 경계에 스레드들을 할당하는 단계를 더 포함하고, 적어도 하나의 할당된 스레드는 그것이 할당되는 상기 스레드 경계와 연관된 상기 서비스의 상기 적어도 일부를 수행하는 것인, 이벤트들 처리 방법.
  10. 제 1 항에 있어서,
    상기 다수의 스레드 경계들 중 적어도 하나의 스레드 경계의 적어도 하나의 태스크는 상기 하나 이상의 이벤트들에 대해 상기 서비스를 수행하기 위하여 적어도 하나의 다른 태스크와 정의된 관계를 갖는 것인, 이벤트들 처리 방법.
  11. 제 1 항에 있어서,
    상기 하나 이상의 이벤트들에 있는 이벤트는 이 이벤트에 대해 상기 서비스를 수행하기 위해 상기 다수의 스레드 경계들에 의해 처리되는 것인, 이벤트들 처리 방법.
  12. 제 1 항에 있어서,
    상기 하나 이상의 이벤트들에 있는 제 1 이벤트 및 제 2 이벤트는 상기 제 1 스레드 경계에서 병렬로(in parallel) 처리되는 것인, 이벤트들 처리 방법.
  13. 이벤트들을 처리하기 위한 컴퓨터 시스템에 있어서,
    다수의 스레드 경계들로서, 상기 다수의 스레드 경계들은 서비스를 수행할 수 있고, 상기 다수의 스레드 경계들에 있는 제 1 스레드 경계는 상기 서비스의 적어도 일부를 수행할 수 있는 적어도 하나의 태스크를 포함하는 것인, 상기 다수의 스레드 경계들;
    상기 스레드 경계들에 연결된 다수의 스레드 경계 큐들로서, 상기 스레드 경계 큐들은 상기 제 1 스레드 경계로 라우팅하기 위한 하나 이상의 이벤트들을 유지할 수 있고, 상기 다수의 스레드 경계들에 있는 적어도 하나의 스레드 경계는 상기 다수의 스레드 경계 큐들에 있는 스레드 경계 큐를 통해 상기 다수의 스레드 경계들에 있는 다른 스레드 경계에 연결되고, 적어도 하나의 태스크는 상기 서비스의 적어도 일부를 수행하기 위해 정의된 관계를 갖고, 상기 정의된 관계는 외부 구성 파일에 저장된 고레벨 언어 기술(high level language description)에 따라 동적으로 구성되는 것인, 상기 다수의 스레드 경계 큐들; 및
    상기 제 1 스레드 경계 큐의 제 1 스레드 경계 큐 깊이에 기초하여 상기 제 1 스레드 경계에 하나 이상의 리소스들을 할당할 수 있는 리소스 할당 모듈로서, 상기 제 1 스레드 경계 큐 깊이는 상기 제 1 스레드 경계 큐에 유지되는 이벤트들의 개수에 기초하는 것인, 상기 리소스 할당 모듈
    을 포함하는 컴퓨터 시스템.
  14. 제 13 항에 있어서,
    상기 할당된 하나 이상의 리소스들은 상기 제 1 스레드 경계의 상기 적어도 하나의 태스크가 상기 제 1 스레드 경계 큐에 유지되는 상기 개수의 이벤트들에 대해 상기 서비스의 상기 적어도 일부를 수행하도록 허용하는 것인, 컴퓨터 시스템.
  15. 제 13 항에 있어서,
    상기 리소스 할당 모듈은 상기 제 1 스레드 경계 큐 깊이 및 상기 제 2 스레드 경계 큐 깊이에 기초하여 상기 제1 스레드 경계에 제1 세트의 리소스들을 할당하고 상기 다수의 스레드 경계들에 있는 제 2 스레드 경계에 제 2 세트의 리소스들을 할당할 수 있고, 상기 제 1 스레드 경계 큐 깊이는 상기 제 1 스레드 경계 큐에 유지되는 이벤트들의 상기 개수에 기초하고, 상기 제 2 스레드 경계 큐 깊이는 상기 제 2 스레드 경계 큐에 유지되는 이벤트들의 제2 개수에 기초하는 것인, 컴퓨터 시스템.
  16. 제 13 항에 있어서,
    상기 하나 이상의 리소스들은 하나 이상의 스레드들을 포함하고, 상기 하나 이상의 스레드들은 상기 제 1 스레드 경계 큐 깊이에 기초하여 상기 제 1 스레드 경계에 할당되는 것인, 컴퓨터 시스템.
  17. 제 16 항에 있어서,
    적어도 하나의 할당된 스레드는 상기 개수의 이벤트들에 대해 상기 제 1 스레드 경계 내의 상기 적어도 하나의 태스크를 수행하는 것인, 컴퓨터 시스템.
  18. 제 16 항에 있어서,
    스레드 경계 큐 깊이에 기초하여 스레드 경계들에 할당될 상기 하나 이상의 스레드들을 포함하는 스레드 풀을 더 포함하고, 상기 스레드 풀은 상기 리소스 할당 모듈에 연결되는 것인, 컴퓨터 시스템.
  19. 제 13 항에 있어서,
    상기 다수의 태스크들의 적어도 하나는 무상태인(stateless) 것인, 컴퓨터 시스템.
  20. 제 13 항에 있어서,
    유틸리티를 제공할 수 있는 하나 이상의 서비스 유틸리티들을 더 포함하며, 상기 다수의 스레드 경계들의 적어도 하나에 있는 상기 적어도 하나의 태스크는 상기 서비스의 일부를 수행하기 위해 상기 하나 이상의 서비스 유틸리티들에서의 서비스 유틸리티를 사용할 수 있는 것인, 컴퓨터 시스템.
  21. 제 20 항에 있어서,
    상기 하나 이상의 서비스 유틸리티들의 적어도 하나는 상태를 저장하도록 구성되는 것인, 컴퓨터 시스템.
  22. 제 13 항에 있어서,
    상기 다수의 스레드 경계들의 상기 적어도 하나의 태스크는 상기 하나 이상의 이벤트들에 대해 상기 서비스를 수행하기 위해 적어도 하나의 다른 태스크와 정의된 관계를 갖는 것인, 컴퓨터 시스템.
  23. 제 13 항에 있어서,
    상기 개수의 이벤트들에 있는 이벤트는 이 이벤트에 대한 상기 서비스를 수행하기 위해 상기 다수의 스레드 경계들에 의해 처리되는 것인, 컴퓨터 시스템.
  24. 제 23 항에 있어서,
    상기 이벤트는 상기 제1 스레드 경계로부터 제2 스레드 경계 큐로 전달되고, 상기 제2 스레드 경계는 상기 이벤트를 처리하는 것인, 컴퓨터 시스템.
  25. 제 13 항에 있어서,
    상기 하나 이상의 이벤트들에 있는 제 1 이벤트 및 제 2 이벤트는 상기 제 1 스레드 경계에서 병렬로 처리되는 것인, 컴퓨터 시스템.
  26. 처리를 위한 컴퓨터 시스템에 있어서,
    적어도 하나의 태스크를 포함하는 제 1 스레드 경계로서, 상기 제 1 스레드 경계의 제 1 태스크는 제 1 함수를 수행하기 위한 처리 기능을 포함하는 것인, 상기 제 1 스레드 경계;
    적어도 하나의 태스크를 포함하는 제 2 스레드 경계로서, 상기 제 2 스레드 경계의 제 2 태스크는 제 2 함수를 수행하기 위한 처리 기능을 포함하는 것인, 상기 제 2 스레드 경계;
    상기 제 1 스레드 경계에 연결된 제 1 스레드 경계 큐;
    상기 제 2 스레드 경계에 연결된 제 2 스레드 경계 큐로서, 상기 제 2 스레드 경계 큐는 상기 하나 이상의 이벤트들이 상기 제 1 스레드 경계로부터 상기 제 2 스레드 경계 큐를 통해 상기 제 2 스레드 경계로 라우팅되도록 상기 제 1 스레드 경계와 상기 제 2 스레드 경계를 접속하는 것인, 상기 제 2 스레드 경계 큐; 및
    상기 제 1 및 제 2 스레드 경계들에 하나 이상의 리소스들을 할당할 수 있는 리소스 할당 모듈로서, 하나 이상의 리소스들은 상기 제 1 및 제 2 태스크들이 그들의 제 1 및 제 2 함수들을 수행하도록 허용하고, 적어도 하나의 태스크는 기능을 수행하기 위해 정의된 관계를 갖고, 이 정의된 관계는 외부 구성 파일에 저장된 고레벨 언어 기술(high level language description)에 따라 동적으로 구성되고, 상기 하나 이상의 리소스들은 상기 제 1 스레드 경계 큐의 제 1 스레드 경계 큐 깊이 및 상기 제 2 스레드 경계 큐의 제 2 스레드 경계 큐 깊이에 기초하여 상기 제 1 및 제 2 스레드 경계들에 할당되고, 상기 제 1 스레드 경계는 상기 하나 이상의 리소스들에 있는 제 1 세트의 리소스들을 수신하고 상기 제 2 스레드 경계는 상기 하나 이상의 리소스들에 있는 제 2 세트의 리소스들을 수신하는 것인, 상기 리소스 할당 모듈
    을 포함하는 컴퓨터 시스템.
  27. 제 26 항에 있어서,
    상기 하나 이상의 리소스들은 상기 제 1 태스크의 상기 제 1 함수 또는 상기 제 2 태스크의 제 2 함수를 처리할 수 있는 스레드들을 포함하는 것인, 컴퓨터 시스템.
  28. 제 27 항에 있어서,
    상기 제 1 및 제 2 스레드 경계 큐 깊이에 기초하여 상기 제 1 및 제 2 스레드 경계들에 할당될 상기 하나 이상의 스레드들을 포함하는 스레드 풀(thread pool)을 더 포함하는, 컴퓨터 시스템.
  29. 제 26 항에 있어서,
    제 1 및 제 2 태스크들은 무상태(stateless)인 것인, 컴퓨터 시스템.
  30. 제 26 항에 있어서,
    하나 이상의 서비스 유틸리티들을 더 포함하고, 서비스 유틸리티는 상기 제 1 함수 또는 상기 제 2 함수를 수행함에 있어 상기 제 1 태스크 또는 제 2 태스크에 의해 액세스될 수 있는 유틸리티를 포함하는 것인, 컴퓨터 시스템.
  31. 제 30 항에 있어서,
    상기 하나 이상의 서비스 유틸리티들의 적어도 하나는 상태를 저장하도록 구성되는 것인, 컴퓨터 시스템.
  32. 제 26 항에 있어서,
    상기 제 1 스레드 경계에서의 상기 적어도 하나의 제 1 태스크 및 상기 제 2 스레드 경계에서의 상기 적어도 하나의 태스크는 상기 이벤트에 대한 상기 제 1 함수 및 제 2 함수에 기초하여 전체 기능을 수행하기 위해 적어도 하나의 다른 태스크와 정의된 관계를 갖는 것인, 컴퓨터 시스템.
  33. 제 26 항에 있어서,
    상기 이벤트는 상기 이벤트에 대한 상기 제 1 및 제 2 함수에 의해 정의된 전체 함수를 수행하기 위해 상기 다수의 스레드 경계들에 의해 처리되는 것인, 컴퓨터 시스템.
  34. 제 26 항에 있어서,
    상기 하나 이상의 이벤트들에 있는 제 1 이벤트 및 제 2 이벤트는 병렬로 처리되는 것인, 컴퓨터 시스템.
  35. 이벤트들을 처리하는 방법에 있어서,
    프로세싱 디바이스를 이용하여, 수행될 서비스에 대한 요청을 수신하는 단계로서, 상기 요청은 제1 이벤트를 포함하는 것인, 상기 요청 수신 단계;
    상기 프로세싱 디바이스를 이용하여, 상기 서비스를 수행하도록 프로그램된 애플리케이션의 로직을 고레벨 언어 기술(high level language description)에 따라 다수의 스레드 경계들로 분할하고, 상기 다수의 스레드 경계들과 연관된 다수의 태스크들간의 관계들을 동적으로 구성하는 단계로서, 상기 다수의 스레드 경계들은 다수의 큐들에 의해 연결되고, 상기 제1 이벤트는 상기 다수의 큐들에 있는 제1 큐를 통해 상기 다수의 스레드 경계들에 있는 제1 스레드 경계로 입력되고, 상기 제1 스레드 경계는 상기 다수의 큐들에 있는 제2 큐에 제2 이벤트를 출력하는 것인, 상기 분할 및 동적 구성 단계;
    상기 프로세싱 디바이스를 이용하여 상기 제1 스레드 경계에서의 부하를 결정하는 단계; 및
    상기 프로세싱 디바이스를 이용하여, 상기 결정된 부하에 기초하여 상기 제1 스레드 경계에 하나 이상의 연산 리소스들을 동적으로 할당하는 단계를 포함하는 이벤트들 처리 방법.
KR20077006143A 2004-08-17 2007-03-16 모듈러 이벤트-구동 처리 KR101049501B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60253904P 2004-08-17 2004-08-17
US60/602,539 2004-08-17

Publications (2)

Publication Number Publication Date
KR20070057838A KR20070057838A (ko) 2007-06-07
KR101049501B1 true KR101049501B1 (ko) 2011-07-15

Family

ID=35510945

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020077006144A KR101164698B1 (ko) 2004-08-17 2005-08-15 업스트림 실패 검출 및 실패 복구를 위한 기술들
KR20077006107A KR101059904B1 (ko) 2004-08-17 2007-03-16 실시간 라우팅 네트워크로 개인화된 콘텐트를 전달하는기술
KR20077006143A KR101049501B1 (ko) 2004-08-17 2007-03-16 모듈러 이벤트-구동 처리

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020077006144A KR101164698B1 (ko) 2004-08-17 2005-08-15 업스트림 실패 검출 및 실패 복구를 위한 기술들
KR20077006107A KR101059904B1 (ko) 2004-08-17 2007-03-16 실시간 라우팅 네트워크로 개인화된 콘텐트를 전달하는기술

Country Status (6)

Country Link
US (1) US9043635B2 (ko)
EP (1) EP1779636B1 (ko)
JP (1) JP4668271B2 (ko)
KR (3) KR101164698B1 (ko)
CN (3) CN101057476B (ko)
WO (1) WO2006023508A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051070B2 (en) * 2000-12-18 2006-05-23 Timothy Tuttle Asynchronous messaging using a node specialization architecture in the dynamic routing network
US8505024B2 (en) 2000-12-18 2013-08-06 Shaw Parsing Llc Storing state in a dynamic content routing network
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
JP5162240B2 (ja) 2004-08-17 2013-03-13 ショー パーシング リミティド ライアビリティ カンパニー リアルタイム配信ネットワークによって個別コンテンツを配信する技法
WO2006023506A1 (en) * 2004-08-17 2006-03-02 Shaw Parsing Llc Modular event-driven processing
CN101057476B (zh) * 2004-08-17 2014-01-08 肖分析有限公司 用实时路由网络递送个人化内容的方法和装置
US20070250626A1 (en) * 2006-04-21 2007-10-25 Electronic Data Systems Corporation System and method for uniform disaster recovery system access
US20080090555A1 (en) * 2006-10-17 2008-04-17 Patel Pulin R Managing Faults and Filters in Providing Foreign Services
US8984326B2 (en) * 2007-10-31 2015-03-17 Hewlett-Packard Development Company, L.P. Testing disaster recovery elements
US8171111B1 (en) * 2008-08-07 2012-05-01 United Services Automobile Association (Usaa) Systems and methods for non-specific address routing
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
CN104811486B (zh) * 2009-06-19 2019-06-14 日本技术贸易株式会社 内容管理装置和内容管理方法
US9300525B2 (en) * 2010-07-02 2016-03-29 At&T Intellectual Property I, L.P. Method and system to identify a source of signal impairment
KR101064143B1 (ko) * 2010-08-20 2011-09-15 주식회사 파수닷컴 Drm 환경에서의 클립보드 보호 시스템 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US8738736B2 (en) * 2010-11-23 2014-05-27 Edgecast Networks, Inc. Scalable content streaming system with server-side archiving
CN104980333B (zh) * 2014-04-14 2018-03-27 纬创资通股份有限公司 Pushlet即时通信方法及平台
CN104168269B (zh) * 2014-07-24 2016-05-04 深圳市腾讯计算机系统有限公司 安全连接建立方法、装置及系统
US9967309B2 (en) * 2014-10-06 2018-05-08 Microsoft Technology Licensing, Llc Dynamic loading of routes in a single-page application
CN107291575B (zh) * 2016-03-31 2020-10-16 阿里巴巴集团控股有限公司 一种数据中心故障时的处理方法和设备
CN107360240A (zh) * 2017-07-20 2017-11-17 广东小天才科技有限公司 一种数据更新方法及系统
US11888840B2 (en) * 2017-11-09 2024-01-30 Mitsubishi Electric Corporation Apparatus and method for selection and transmission of server certificate
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
US11570073B1 (en) * 2019-11-21 2023-01-31 Juniper Networks, Inc. Service status notification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
US20040139433A1 (en) 2002-12-31 2004-07-15 International Business Machines Corporation Programmatic response-time based workload distribution techniques

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230048A (en) 1986-09-03 1993-07-20 Wang Laboratories, Inc. Data processing system with tree and list data structure
US5535335A (en) 1992-12-22 1996-07-09 International Business Machines Corporation Method and system for reporting the status of an aggregate resource residing in a network of interconnected real resources
FR2702579B1 (fr) 1993-03-12 1995-05-24 Bull Sa Dispositif de communication entre au moins un client et au moins un serveur, procédé d'utilisation du dispositif et utilisation du dispositif.
US6052447A (en) 1993-05-28 2000-04-18 Sprint Communications Company L.P. Method and apparatus for aggregating customer information for a telecommunications system
US5974457A (en) 1993-12-23 1999-10-26 International Business Machines Corporation Intelligent realtime monitoring of data traffic
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US6769009B1 (en) 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
US6460036B1 (en) 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5706516A (en) 1995-01-23 1998-01-06 International Business Machines Corporation System for communicating messages among agent processes
US5819284A (en) 1995-03-24 1998-10-06 At&T Corp. Personalized real time information display as a portion of a screen saver
US6240451B1 (en) 1995-05-25 2001-05-29 Punch Networks Corporation Method and apparatus for automatically disseminating information over a network
US5740549A (en) 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US6002667A (en) 1995-07-19 1999-12-14 Fujitsu Network Communications, Inc. Minimum guaranteed cell rate method and apparatus
US5878420A (en) 1995-08-31 1999-03-02 Compuware Corporation Network monitoring and management system
US6029175A (en) 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
EP0941515A1 (en) 1995-10-31 1999-09-15 Frederick S.M. Herz System for customized electronic identification of desirable objects
US5938733A (en) 1996-03-08 1999-08-17 International Business Machines Corporation Object oriented representation of network requests in a client server model
US5964839A (en) 1996-03-29 1999-10-12 At&T Corp System and method for monitoring information flow and performing data collection
US6018619A (en) 1996-05-24 2000-01-25 Microsoft Corporation Method, system and apparatus for client-side usage tracking of information server systems
US5822543A (en) 1996-07-08 1998-10-13 International Business Machines Corporation Gathering data handling statistics in non-synchronous data communication networks
US7249037B2 (en) 1996-09-09 2007-07-24 Bancorp Services L.L.P. System for managing a stable value protected investment plan
US5886643A (en) 1996-09-17 1999-03-23 Concord Communications Incorporated Method and apparatus for discovering network topology
US6055493A (en) 1997-01-29 2000-04-25 Infovista S.A. Performance measurement and service quality monitoring system and process for an information system
US6578077B1 (en) 1997-05-27 2003-06-10 Novell, Inc. Traffic monitoring tool for bandwidth management
JP3932462B2 (ja) 1997-05-27 2007-06-20 ソニー株式会社 クライアント装置、画像表示制御方法、共有仮想空間提供装置および方法、並びに記録媒体
JP3799134B2 (ja) 1997-05-28 2006-07-19 ソニー株式会社 システムおよび通知方法
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6233600B1 (en) 1997-07-15 2001-05-15 Eroom Technology, Inc. Method and system for providing a networked collaborative work environment
US6173406B1 (en) 1997-07-15 2001-01-09 Microsoft Corporation Authentication systems, methods, and computer program products
US6112240A (en) 1997-09-03 2000-08-29 International Business Machines Corporation Web site client information tracker
GB2344265B (en) 1997-11-20 2003-07-16 Xacct Technologies Inc Network accounting and billing system and method
US6324587B1 (en) 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6449638B1 (en) 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6094681A (en) 1998-03-31 2000-07-25 Siemens Information And Communication Networks, Inc. Apparatus and method for automated event notification
US6138158A (en) 1998-04-30 2000-10-24 Phone.Com, Inc. Method and system for pushing and pulling data using wideband and narrowband transport systems
US6363421B2 (en) 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
JP4634547B2 (ja) * 1998-06-30 2011-02-16 株式会社東芝 リアルタイム情報配信方法
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6314459B1 (en) 1998-08-13 2001-11-06 U.S. Philips Corporation Home-network autoconfiguration
US6560611B1 (en) 1998-10-13 2003-05-06 Netarx, Inc. Method, apparatus, and article of manufacture for a network monitoring system
US6308209B1 (en) 1998-10-22 2001-10-23 Electronic Data Systems Corporation Method and system for measuring usage of a computer network by a network user
ATE273538T1 (de) 1998-10-28 2004-08-15 Verticalone Corp Gerät und verfahren für automatische aggregation und abgabe von elektronischer persönlicher information oder daten
US6691165B1 (en) 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US6366926B1 (en) 1998-12-31 2002-04-02 Computer Associates Think, Inc. Method and apparatus for the dynamic filtering and routing of events
US6567411B2 (en) 1998-12-31 2003-05-20 Qwest Communications International, Inc. Method and apparatus for continuous narrowcast of individualized information over a data network
US6446257B1 (en) 1999-02-04 2002-09-03 Hewlett-Packard Company Method and apparatus for pre-allocation of system resources to facilitate garbage collection
US6970924B1 (en) 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
US6408282B1 (en) 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
US20020013852A1 (en) 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
US6609138B1 (en) 1999-03-08 2003-08-19 Sun Microsystems, Inc. E-mail list archiving and management
US6751663B1 (en) 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US6539427B1 (en) 1999-06-29 2003-03-25 Cisco Technology, Inc. Dynamically adaptive network element in a feedback-based data network
US6829642B1 (en) 1999-07-01 2004-12-07 International Business Machines Corporation Method and system for automatically and optimally selecting a TN3270 server in an internet protocol network
US6789115B1 (en) 1999-07-09 2004-09-07 Merrill Lynch & Company System for collecting, analyzing, and reporting high volume multi-web server usage
US6553412B1 (en) 1999-09-10 2003-04-22 Avantgo, Inc. System, method, and computer program product for web content aggregation and development, and web content delivery to clients
US6873693B1 (en) 1999-09-13 2005-03-29 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for entertainment-related information
US7293074B1 (en) 1999-09-20 2007-11-06 Fusionone, Inc. Performing server actions using template with field that can be completed without obtaining information from a user
US6792458B1 (en) 1999-10-04 2004-09-14 Urchin Software Corporation System and method for monitoring and analyzing internet traffic
US6484143B1 (en) 1999-11-22 2002-11-19 Speedera Networks, Inc. User device and system for traffic management and content distribution over a world wide area network
US20020010757A1 (en) 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US6418448B1 (en) 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US6606643B1 (en) 2000-01-04 2003-08-12 International Business Machines Corporation Method of automatically selecting a mirror server for web-based client-host interaction
US7454457B1 (en) * 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
US6871346B1 (en) 2000-02-11 2005-03-22 Microsoft Corp. Back-end decoupled management model and management system utilizing same
US7392281B1 (en) 2000-02-25 2008-06-24 Navic Systems, Inc. System and method for providing guaranteed delivery of messages to embedded devices over a data network
US20010047426A1 (en) 2000-03-31 2001-11-29 Hunter Kevin D. Device-based routing for web content retrieval
US7209959B1 (en) 2000-04-04 2007-04-24 Wk Networks, Inc. Apparatus, system, and method for communicating to a network through a virtual domain providing anonymity to a client communicating on the network
US6654804B1 (en) 2000-04-27 2003-11-25 Micron Electronics, Inc. Method and apparatus for automatic dial-up dial-down web hosting
ATE289140T1 (de) 2000-05-05 2005-02-15 Nomadix Inc Gerät und verfahren zur überwachung der netzwerkauslastung
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6769010B1 (en) 2000-05-11 2004-07-27 Howzone.Com Inc. Apparatus for distributing information over a network-based environment, method of distributing information to users, and method for associating content objects with a database wherein the content objects are accessible over a network communication medium by a user
US6658652B1 (en) 2000-06-08 2003-12-02 International Business Machines Corporation Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
US6944662B2 (en) 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US7139844B2 (en) 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US20020024536A1 (en) 2000-08-25 2002-02-28 Michal Kahan Method and apparatus for information aggregation and personalized display of the aggregated information
US7752214B2 (en) 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
US7107326B1 (en) 2000-10-13 2006-09-12 3Com Corporation Method and system for integrating IP address reservations with policy provisioning
US20020087630A1 (en) 2000-10-20 2002-07-04 Jonathan Wu Enhanced information and presence service
US7249197B1 (en) 2000-10-20 2007-07-24 Nortel Networks Limited System, apparatus and method for personalising web content
US20020073165A1 (en) 2000-10-23 2002-06-13 Pingpong Technology, Inc. Real-time context-sensitive customization of user-requested content
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US6725446B1 (en) 2000-11-01 2004-04-20 Digital Integrator, Inc. Information distribution method and system
JP2002236626A (ja) * 2000-12-06 2002-08-23 Site Rock Corp サイト監視方法、および、サイト監視システム
US8505024B2 (en) 2000-12-18 2013-08-06 Shaw Parsing Llc Storing state in a dynamic content routing network
US7051070B2 (en) * 2000-12-18 2006-05-23 Timothy Tuttle Asynchronous messaging using a node specialization architecture in the dynamic routing network
US20020078251A1 (en) 2000-12-18 2002-06-20 Philips Electronics North America Corp. Self-determining command path architecture
US7043525B2 (en) 2000-12-18 2006-05-09 Bang Networks, Inc. Techniques for updating live objects at clients using a dynamic routing network
US7127720B2 (en) 2000-12-18 2006-10-24 Charles E Cano Storing state in a dynamic content routing network
US7177917B2 (en) 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US6836886B2 (en) 2001-03-19 2004-12-28 Autodesk, Inc. Method and apparatus for delivering electronic information
JP2002343578A (ja) * 2001-05-10 2002-11-29 Nec Corp 発光体、発光素子、および発光表示装置
IL161389A0 (en) 2001-10-15 2004-09-27 Semandex Networks Inc Dynamic content based multicast routing in mobile networks
US7970876B2 (en) 2002-07-23 2011-06-28 Avaya Communication Israel Ltd. Global server load balancer
EP1394701A3 (en) * 2002-07-31 2006-05-03 Hewlett-Packard Development Company, L.P. Establishment of network connections
JP2004234123A (ja) 2003-01-28 2004-08-19 Fujitsu Ltd マルチスレッドコンピュータ
US7159034B1 (en) * 2003-03-03 2007-01-02 Novell, Inc. System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
US7467390B2 (en) 2003-04-01 2008-12-16 International Business Machines Corporation Enhanced staged event-driven architecture
US7350213B2 (en) 2003-06-19 2008-03-25 Sap Ag System and method for dynamic selection of stateless/stateful software components
US8549078B2 (en) * 2003-08-08 2013-10-01 Teamon Systems, Inc. Communications system providing load balancing based upon connectivity disruptions and related methods
GB0325691D0 (en) * 2003-11-04 2003-12-10 Dotworlds Ltd Resolution of network names
US20050125557A1 (en) * 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
EP1628278A1 (en) * 2004-08-16 2006-02-22 Alcatel Method and system for detecting available parking places
CN101057476B (zh) 2004-08-17 2014-01-08 肖分析有限公司 用实时路由网络递送个人化内容的方法和装置
JP5162240B2 (ja) 2004-08-17 2013-03-13 ショー パーシング リミティド ライアビリティ カンパニー リアルタイム配信ネットワークによって個別コンテンツを配信する技法
WO2006023506A1 (en) 2004-08-17 2006-03-02 Shaw Parsing Llc Modular event-driven processing
WO2006046516A1 (ja) * 2004-10-26 2006-05-04 Olympus Corporation 内視鏡形状検出装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
US20040139433A1 (en) 2002-12-31 2004-07-15 International Business Machines Corporation Programmatic response-time based workload distribution techniques

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Welsh,M.D., "An architecture for highly concurrent, well-conditioned internet services", Ph.d thesis, Univ. of california at berkeley (fall 2002)

Also Published As

Publication number Publication date
KR20070095273A (ko) 2007-09-28
KR20070083566A (ko) 2007-08-24
KR20070057838A (ko) 2007-06-07
KR101164698B1 (ko) 2012-07-11
US9043635B2 (en) 2015-05-26
JP2008510436A (ja) 2008-04-03
JP4668271B2 (ja) 2011-04-13
CN101189852A (zh) 2008-05-28
US20060075279A1 (en) 2006-04-06
KR101059904B1 (ko) 2011-08-29
EP1779636B1 (en) 2015-05-27
CN100527086C (zh) 2009-08-12
CN101040261A (zh) 2007-09-19
EP1779636A1 (en) 2007-05-02
WO2006023508A1 (en) 2006-03-02
CN101057476A (zh) 2007-10-17
CN101189852B (zh) 2012-10-03
CN101057476B (zh) 2014-01-08

Similar Documents

Publication Publication Date Title
KR101049501B1 (ko) 모듈러 이벤트-구동 처리
US8397237B2 (en) Dynamically allocating threads from a thread pool to thread boundaries configured to perform a service for an event
US10817331B2 (en) Execution of auxiliary functions in an on-demand network code execution system
JP6411698B2 (ja) アプリケーションの展開のためのカスタム通信チャネル
US9385963B1 (en) System and method for allocating resources for heterogeneous service requests
US20190391834A1 (en) Execution of auxiliary functions in an on-demand network code execution system
US7577628B2 (en) Startup and control of graph-based computation
US9465663B2 (en) Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
US8595722B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
AU2017266901B2 (en) Reconfigurable distributed processing
US20200329098A1 (en) Migrating a network service to a container-based platform
WO2017074469A1 (en) Cloud lifecycle management
US9934268B2 (en) Providing consistent tenant experiences for multi-tenant databases
CN114730305A (zh) 控制应用和服务器之间的事务请求
US11916998B2 (en) Multi-cloud edge system
Jordan et al. Wrangler's user environment: A software framework for management of data-intensive computing system
Hernández et al. A reliable and scalable service bus based on Amazon SQS
Andreetto et al. The Cloud Area Padovana: from pilot to production
US11762710B2 (en) Multithreaded route processing for routing information display
Song et al. Optimizing communication performance in scale-out storage system
Maksimović et al. Task Queue Implementation for Edge Computing Platform
Lebesbye Boreas–Reducing Resource Usage Through Optimized Kubernetes Scheduling
Kvas et al. Evaluation of static program allocation schemes for macro data-flow computer
AU2007202782B2 (en) Startup and control of graph-based computation
Le Pipelined Apache HTTP Server

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 9