KR20050076762A - 코드로의 객체의 결정적 규칙 기반 디스패치 - Google Patents

코드로의 객체의 결정적 규칙 기반 디스패치 Download PDF

Info

Publication number
KR20050076762A
KR20050076762A KR1020050005902A KR20050005902A KR20050076762A KR 20050076762 A KR20050076762 A KR 20050076762A KR 1020050005902 A KR1020050005902 A KR 1020050005902A KR 20050005902 A KR20050005902 A KR 20050005902A KR 20050076762 A KR20050076762 A KR 20050076762A
Authority
KR
South Korea
Prior art keywords
rules
data structure
rule
methods
group
Prior art date
Application number
KR1020050005902A
Other languages
English (en)
Inventor
코프랜드조지피.
카브레라루이스에프.
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050076762A publication Critical patent/KR20050076762A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Image Analysis (AREA)
  • Devices For Executing Special Programs (AREA)
  • Electron Beam Exposure (AREA)

Abstract

한 개 이상의 방법들의 그룹으로의 데이타 구조의 결정적 규칙 기반의 디스패치(deterministic rule-based dispatch). 프로세스되는 데이타 구조를 액세스한 후에, 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별하기 위해 규칙들의 리스트가 평가된다. 이들 복수 규칙들의 각각은 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 다른 그룹을 명시한다. 복수 규칙들은 데이타 구조의 디스패치에 적용될 한 개의 유력한 규칙(prevailing rule)으로 리졸브된다. 그 다음, 컴퓨팅 시스템은 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 그룹으로 데이타 구조를 디스패치한다. 규칙 평가 및 우선순위화(prioritization)는, 성능 문제가 프로세싱 중에 발생하면 한 개 이상의 방법들의 어느 그룹이 데이타 구조를 프로세스했는지가 결정될 수 있으므로, 디버깅에서 쉽게 결정적이다. 게다가, 규칙들은 동적으로 추가되거나, 수정되거나, 또는 삭제될 수 있다.

Description

코드로의 객체의 결정적 규칙 기반 디스패치{DETERMINISTIC RULE-BASED DISPATCH OF OBJECTS TO CODE}
본 발명은 컴퓨팅 기술에 관한 것이고, 더 구체적으로는, 특정 코드로 객체들의 규칙-기반 디스패치를 결정적으로 수행하는 메카니즘에 관한 것이다.
컴퓨팅 기술은 우리가 일하고 노는 방식을 변화시켜왔다. 컴퓨팅 시스템은 이제 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 PC, 개인 정보 단말기(PDA), 가정용 디바이스 등을 포함하는 다양한 형태들을 갖는다. 그것의 가장 기본 형태로, 컴퓨팅 시스템은 시스템 메모리와 한 개 이상의 프로세서를 포함한다. 시스템 메모리의 소프트웨어는 원하는 기능을 수행하기 위해 컴퓨팅 시스템의 다른 하드웨어를 지정하기 위해 프로세서에 의해 실행될 수 있다.
소프트웨어는 매우 복잡하고, 종종 수천 또는 수억의 소스 코드 라인들로부터 컴파일되거나 인터프리트될 수 있다. 소프트웨어 개발 프로세스에 특정 조직화를 제공하기 위해, 작업은 더 구체적 동작들을 수행하는 관리가능한 서브루틴들 또는 방법들로 분해될 수 있다. 그 다음, 방법들은 전체적으로 소프트웨어의 더 복잡한 기능을 수행하기 위해 상관된다. 이들 방법들은 종종 프로세싱을 위해 한 개 이상의 데이타 구조를 수신한다.
소프트웨어의 복잡성 때문에, 어떤 방법이 추가 프로세싱을 위해 데이타 구조를 수신해야 하는지를 결정하는 것은 종종 사소한 작업이 아니다. 예를 들어, 통신망 서비스가 메시지를 수신할 때, 통신망 서비스는 종종 메시지를 디스패치하기 위해 잠재적으로 다수의 방법들 중의 한 개를 선택해야 한다.
종래 시스템들은 종종 그런 상황에서 규칙-기반 디스패치를 채택한다. 특히, 조건들과 데이타 구조가 디스패치되는 방법 간의 매핑을 제공하는 규칙들의 리스트를 갖는다. 종종, 적용되는 복수의 조건들과 상황들에서 적용되는 복수 규칙들이 있다. 따라서, 어떤 방법이 궁극적으로 데이타 구조를 프로세스할지(또는 프로세스해왔는지)를 결정적인 방식으로 예상하기는 어렵다. 시스템이 데이타 구조의 프로세싱 중에 성능 일탈(performance deviation)을 하면, 성능 일탈을 유발하는 코드는 즉시 식별가능하지 않을 수 있으므로 시스템을 디버그하는 것은 어려울 것이다.
게다가, 종래 시스템에서, 규칙들의 리스트는 실행가능 디스패치 코드 내에 병합된다. 따라서, 규칙 리스트의 교정은 소스 코드의 교정, 재컴파일링, 및 디스패치 코드의 재배포에 관련한다. 이것은 막대한 시간 및 자원이 들 수 있다.
따라서, 복수 디스패치 규칙들이 적용되고 규칙들이 더 동적으로 변화되는 경우들에서 어떤 코드가 데이타 구조를 프로세스할 것인지가 더욱 예측가능한 규칙-기반 디스패치를 수행하는 메카니즘은 장점이 있을 것이다.
종래 기술의 상술된 문제들은, 한 개 이상의 방법들의 그룹에 의한 프로세싱을 위해 데이타 구조들을(메시지에 존재하는 정보를 포함하는 것들 등) 디스패치할 수 있는 컴퓨팅 시스템에 구현될 수 있는 본 발명의 원칙들에 의해 극복된다. 컴퓨팅 시스템은 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 데이타 구조의 결정적 규칙-기반 디스패치를 수행한다. 어디에 그 데이타 구조가 디스패치되어야하는지에 대해 대립하는 복수 규칙들의 존재에도 불구하고 디스패치는 결정적이다.
컴퓨팅 시스템은 프로세스되는 데이타 구조를 액세스한 후에, 규칙 리스트를 평가하여 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별한다. 이들 복수 규칙들의 각각은 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 다른 그룹을 명시한다. 컴퓨팅 시스템은 데이타 구조의 디스패치를 위해 적용되는 한 개의 유력한 규칙으로 이들 규칙들을 리졸브한다. 그 다음, 컴퓨팅 시스템은 그 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 그룹으로 데이타 구조를 디스패치한다.
규칙 평가 및 우선순위화는 한 개 이상의 방법들의 어떤 그룹이 데이타 구조를 프로세스하는지가 재구성되도록 결정적이다. 그 다음, 방법들이 알려지므로, 데이타 구조를 프로세스하는 중에 성능 일탈이 일어나면 디버깅은 크게 단순화된다. 게다가, 규칙들의 리스트는 실제 디스패치 코드에 독립적으로 관리될 수 있다. 예를 들어, 규칙들의 리스트는 XPATH 문장들을 사용하여, 또는 임의의 다른 구조화된 방식으로 표현될 수 있다. 규칙의 변경은 단순히 리스트로부터 규칙들을 추가하고 삭제하거나, 또는 리스트에서 규칙들을 수정하는 것과 관련있다. 이것은 계속 변화하는 주어진 실시간 상황에서 적절하면 더 동적으로 갱신되는 규칙들을 허용한다.
본 발명의 추가 특징들 및 장점들은 아래 설명에 기재될 것이고, 부분적으로는 그 설명으로부터 명백할 것이고, 또는 본 발명의 실시에 의해 얻어지게 될 것이다. 본 발명의 특징들 및 장점들은 첨부된 청구범위에서 구체적으로 지적된 계기들 및 조합에 의해 실현되고 획득될 수 있다. 본 발명의 이들 및 다른 특징들은 다음 설명 및 첨부된 청구범위로부터 더 명백해질 것이고, 또는 다음에 기재되는 바와 같이 본 발명의 실시에 의해 얻어질 것이다.
본 발명의 장점들과 특징들이 얻어질 수 있는 방식을 설명하기 위해, 첨부된 도면들에 설명된 특정 실시예들을 참조하여 본 발명의 더 구체적 설명이 되어질 것이다. 이들 도면들이 본 발명의 전형적 실시예들만을 도시하고 그러므로 그것의 범위를 제한하는 것으로 고려되어서는 안됨을 이해하여, 본 발명은 동반된 도면들의 사용을 통해 추가적 특수성 및 세부사항을 기재하고 설명할 것이다.
본 발명의 원칙들은 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 데이타 구조의 결정적 규칙-기반 디스패치를 수행하는 메카니즘에 관련있다. 프로세스되는 데이타 구조를 액세스한 후에, 컴퓨팅 시스템은 규칙들의 리스트를 평가하여 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별한다. 이들 복수 규칙들의 각각은 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 다른 그룹을 명시한다. 컴퓨팅 시스템은 데이타 구조의 디스패치를 위해 적용될 한 개의 유력한 규칙으로 이들 규칙들을 리졸브한다. 그 다음, 컴퓨팅 시스템은 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 그룹으로 데이타 구조를 디스패치한다. 한 개 이상의 방법들의 어느 그룹이 데이타 구조를 프로세스하는지가 재구성될 수 있도록, 규칙 평가 및 우선순위화가 결정적이다. 그 다음, 방법들이 알려지므로, 데이타 구조를 프로세스하는 중에 성능 일탈이 발생하면 디버깅은 크게 단순화되어, 계속 변화하는 주어진 실시간 환경에서 적절하면 더욱 동적으로 규칙들이 갱신되도록 한다.
도면들에서, 유사 참조 부호는 유사 소자를 참조하고, 본 발명은 적합한 컴퓨팅 환경에서 구현되는 것으로 설명된다. 다음 설명은 본 발명의 설명된 실시예들에 기초하고, 본 명세서에 명백히 기재되지 않은 다른 실시예들에 대해 본 발명을 제한하는 것으로 받아들여져서는 안된다.
다음 설명에서, 본 발명은 한 개 이상의 컴퓨터에 의해 수행되는 동작들 및 연산들의 부호 표현을 참조하여 설명된다. 그렇게, 때때로 컴퓨터 실행되는 것으로서 언급되는 그런 동작들 및 연산들은 컴퓨터의 프로세싱 유닛에 의한 구조화된 형태의 데이타를 표현하는 전기 신호의 조작을 포함한다. 이 조작은 데이타를 변환하고, 당업자에 의해 잘 이해되는 방식으로 컴퓨터의 연산을 재구성하거나 또는 변경하는 컴퓨터의 메모리 시스템의 위치들에서 그들은 관리한다. 데이타가 관리되는 데이타 구조는 데이타 형식에 의해 정의된 구체적 특성들을 갖는 메모리의 물리적 위치들이다. 그러나, 본 발명이 상술된 콘텍스트로 기재되는 한편, 당업자들이 본 명세서에 기재되는 동작들 및 연산들 중의 몇 개가 또한 하드웨어에도 구현될 수 있슴을 이해할 것처럼 제한적이려는 의도가 아니다. 도 1은 이들 디바이스들에 유용한 컴퓨터 아키텍쳐의 예의 개략도를 도시한다.
설명 목적으로, 설명된 아키텍쳐는 적절한 환경의 단지 일예일 뿐이고, 본 발명의 사용 또는 기능의 범위에 임의의 제한을 제안하려는 것은 아니다. 컴퓨팅 시스템은 도 1에 도시된 콤포넌트들 중의 임의의 것 또는 조합에 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서도 안된다.
본 발명은 다수의 다른 일반 목적이나 특수 목적의 컴퓨팅 또는 통신 환경이나 구성과 동작한다. 본 발명과 사용하기에 적합한 잘 공지된 컴퓨팅 시스템, 환경, 및 구성의 예들은 휴대폰, 포켓 컴퓨터, 개인용 컴퓨터, 서버, 멀티프로세서 시스템, 마이크로프로세서-기반의 시스템, 미니 컴퓨터, 메인프레임 컴퓨터, 및 상기 시스템들과 디바이스들 중의 임의의 것을 포함하는 분산 컴퓨팅 환경을, 하지만 거기에 제한적이 아닌, 포함한다.
그것의 가장 기본적 구성에서, 컴퓨팅 시스템(100)은 통상적으로 적어도 한 개의 프로세싱 유닛(102)과 메모리(104)를 포함한다. 메모리(104)는 휘발성(RAM과 같은), 비휘발성(ROM, 플래쉬 메모리 등과 같은), 또는 그 둘의 어떤 조합일 수 있다. 이 가장 기본 구성은 점선(106)에 의해 도 1에 도시된다.
저장 매체 디바이스들은 추가 특징들 및 기능을 가질 수 있다. 예를 들어, 그들은 PCMCIA 카드, 자기 및 광 디스크, 및 자기 테입을, 하지만 거기에 제한되지 않고, 포함하는 추가 저장장치(분리형 및 비분리형)를 포함할 수 있다. 그런 추가 저장장치는 분리형 저장장치(108)와 비분리형 저장장치(110)에 의해 도 1에 도시된다. 컴퓨터 저장 매체들은 컴퓨터 판독가능 명령, 데이타 구조, 프로그램 모듈, 또는 기타 데이타와 같은 정보 저장을 위한 임의의 방법이나 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 메모리(104), 분리형 저장장치(108), 및 비분리형 저장장치(110)는 모두 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리, 다른 메모리 기술, CD-ROM, DVD, 기타 광 저장장치, 자기 카세트, 자기 테입, 자기 디스크 저장장치, 기타 자기 저장 디바이스, 및 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨팅 시스템에 의해 액세스될 수 있는 임의의 다른 매체를, 하지만 거기에 제한적이 아닌, 포함한다.
본 명세서에서 사용되는 바와 같이, "모듈" 또는 "콤포넌트"라는 용어는 컴퓨팅 시스템에서 실행되는 소프트웨어 객체들이나 루틴들을 언급할 수 있다. 본 명세서에서 설명된 다른 콤포넌트, 모듈, 엔진, 및 서비스는 컴퓨팅 시스템에서 실행되는(예를 들어, 분리된 쓰레드(threads)로서) 객체나 프로세스로서 구현될 수 있다. 본 명세서에서 설명된 시스템 및 방법은 바람직하게는 소프트웨어에 구현되는 한편, 소프트웨어와 하드웨어 또는 하드웨어에의 구현도 또한 가능하고 고려된다.
컴퓨팅 시스템(100)은 통신망(120)을 통해 다른 시스템 및 디바이스와 호스트가 통신하도록 하는 통신 채널(112)을 또한 포함할 수 있다. 통신 채널(112)은 통신 매체의 예들이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령, 데이타 구조, 프로그램 모듈, 또는 반송파나 기타 전송 메카니즘과 같은 복조된 데이타 신호의 다른 데이타를 포함하고, 임의의 정보 전달 매체를 포함한다. 예로서, 하지만 제한적이 아닌, 통신 매체는 유선 통신망과 직접 유선 연결과 같은 유선 매체, 및 음향, 무선, 적외선, 및 기타 무선 매체와 같은 무선 매체를 포함한다. 본 명세서에서 사용되는 바와 같이 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체를 모두 포함한다.
컴퓨팅 디바이스(100)는 또한 키보드, 마우스, 펜, 음성 입력 콤포넌트, 터치 입력 디바이스 등과 같은 입력 콤포넌트(114)를 가질 수 있다. 출력 콤포넌트(116)는 스크린 디스플레이, 스피커, 프린터 등, 및 그들을 드라이브하는 랜더링 모듈(종종 "어댑터"로 불림)을 포함한다. 컴퓨팅 시스템(100)은 전원(118)을 갖는다. 모든 이들 콤포넌트들은 당 기술분야에 잘 공지되고, 본 명세서에서 길게 논의할 필요가 없다.
도 2는 본 발명의 원칙들에 따라 결정적 규칙-기반 디스패치를 수행하기 위해 협력적으로 인터랙트할 수 있는 다양한 콤포넌트(200)를 도시한다. 도 1의 컴퓨팅 시스템(100)의 콘텍스트로 구현될 때, 다양한 콤포넌트들은 메모리(104)에 위치될 수 있고, 그리고/또는, 예를 들어, 분리형 저장장치(108) 및/또는 비분리형 저장장치(10)와 같은 지속적 메모리에 지속될 수 있다.
다양한 콤포넌트들(200)은 디스패치 규칙들의 리스트(203)를 포함한다. 리스트(203)는 임의의 수의 디스패치 규칙들을 포함할 수 있다. 그러나, 설명된 실시예에서, 리스트(203)는 수직 점선(203D)에 의해 표현된 바와 같이 잠재적으로 다른 것들 중에 규칙(203A), (203B), 및 (203C)를 포함한다. 각각의 규칙은 조건과 조건이 맞으면 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 그룹을 명시한다. 예를 들어, 규칙(203A)은 조건(203AA)과 방법(들)(203AB)을 명시하고, 규칙(203B)은 조건(203BA)과 방법(들)(203BB)을 명시하고, 규칙(203C)은 조건(203CA)과 방법(들)(203CB)을 명시한다. 명시된 방법(들)은 한 개의 방법일 수 있거나, 특별 순서로 수행되는 방법들의 그룹일 수 있다.
비교 모듈(202)은 데이타 구조(201)를 액세스하고, 규칙 리스트(203)를 평가하여 데이타 구조의 디스패치에 적용하는 복수 규칙들(204)을 식별한다. 그 다음, 적용가능 규칙(204)은 레졸루션 모듈(resolution module)(205)로 식별된다. 데이타 구조(201)는, 예를 들어, 수신된 메시지(예를 들어, SOAP 메시지)일 수 있고, 또는 비교 모듈(202)에 의해 액세스가능한 임의의 다른 데이타 구조일 수 있다. 비교 모듈(202)은 그 규칙에 대해 대응하는 조건이 만족되면 적용가능한 것으로 규칙을 식별한다. 조건들은 데이타 구조(201)의 구조적 특성, 데이타 구조(201)의 내용, 환경적 상황(시간 또는 컴퓨터 작업부하와 같은), 또는 임의의 다른 요인에 기초할 수 있다.
대립되는 다수의 규칙들이 있는 경우에서 우선순위를 갖는 감소된 수의 규칙들을 식별하기 위해 구성되는 임의의 수의 우선순위화 메카니즘들을 레졸루션 모듈(205)은 포함한다. 설명된 실시예에서, 우선순위화 메카니즘(206)은 수직 점선(206D)에 의해 표현되는 것처럼 잠재적인 다른 것들 중에 우선순위화 메카니즘(206A), (206B), 및 (206C)를 포함하는 것으로서 도시된다. 적어도 한 개의 우선순위화 메카니즘은 복수의 대립되는 규칙들이 있는 경우에 단지 한 개의 규칙이 유력함을 보장하기 위해 구성된다. 이것을 보장하는 우선순위화 메카니즘은 그것의 우측에 별표를 갖는 우선순위화 모듈(206C)에 의해 도 2에 표현된다.
레졸루션 모듈(205)은 우선순위화 메카니즘(206)을 사용하여 데이타 구조(201)의 디스패치를 위해 적용될 유력한 규칙(207)을 식별한다. 디스패칭 메카니즘(208)은 유력한 규칙(207)을 사용하여 실행되는 대응하는 한 개 이상의 방법들(209)로 데이타 구조(201')의 적어도 한 개의 수정된 버전을 결정적으로 디스패치한다. 이 예에서, 데이타 구조는 한 개의 방법으로 디스패치되지 않고, 방법(209A) 내지 방법(209D)에 의해 프로세스되기 위해 디스패치된다.
이들 방법 중의 일부는 또한 다른 규칙들에 의해 프로세스되기 위해 명시될 수 있다 -그러나 꼭 이경우일 필요는 없슴-. 예를 들어, 규칙(203A)이 유력한 규칙(207)이고, 데이타 구조가 방법(209)으로 디스패치되어야 함을 명시하는 것을 가정한다. 방법(209A)은 또한 다른 규칙들(203B, 203C, 및 203D)에 대해 수행되는 디스패치 방법의 그룹들의 일부로서 수행되는 방법일 수 있다. 따라서, 이들 규칙들에 대한 한 개 이상의 디스패치 방법들의 그룹들이 상이하다고 하더라도 디스패치 방법들은 복수의 규칙들 간에 공유될 수 있다. 디스패치되는 데이타 구조(201')는, 원하면 일부 수정이 수행될 수 있지만, 비교 모듈(202)에 의해 액세스되는 데이타 구조(201)와 동일할 수 있다.
한 개 이상의 방법들의 어느 그룹이 데이타 구조를 프로세스하는지를 재구성할 수 있도록, 규칙 평가 및 우선순위화는 결정적이다. 그 때, 방법들이 알려지므로, 성능 일탈이 데이타 구조를 프로세스하는 중에 발생하면 디버깅이 크게 단순화된다.
도 3은 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 데이타 구조의 결정적 규칙-기반 디스패치를 수행하기 위한 컴퓨팅 시스템의 방법(300)의 흐름도를 도시한다. 프로세스되는 데이타 구조를 액세스할 때(예를 들어, 메시지의 수신)(동작(301)), 한 개 이상의 방법들의 그룹으로 데이타 구조를 결정적으로 디스패치하기 위해 규칙들의 리스트를 사용하는 기능적이고 결과지향적 단계(단계(310))가 수행된다. 이것은 이 결과를 성취하는 임의의 대응하는 동작들을 포함할 것이다. 그러나, 설명된 실시예에서, 단계(310)는 대응하는 동작들(311, 312, 313)을 포함한다.
구체적으로, 디스패치 규칙들의 리스트는 데이타 구조의 디스패치에 적용되는 다수의 규칙들을 식별하기 위해 평가된다(단계(311)). 이전에 언급된 바와 같이, 복수의 규칙들의 각각은 조건이 맞으면 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 상이한 그룹을 명시한다. 일 실시예에서, 조건은 XPATH 문장들을 사용하여 표현될 수 있다. 이것은 데이타 구조가 SOAP 엔벨로프(envelope)이면 특히 유용할 것이다.
그 다음, 복수의 규칙들은 데이타 구조의 디스패치를 위해 적용될 유력한 규칙을 식별하기 위해 리졸브된다(동작(312)). 그 다음, 데이타 구조는 유력한 규칙들에 의해 명시된 바와 같이 디스패치될 것이다(동작(313)). 일 실시예에서, 데이타 구조에 프로세스되는 방법들은, 꼭 그럴 필요가 있는 것은 아니지만, 디스패칭 메카니즘으로서 동일한 컴퓨팅 시스템에 있을 수 있다. 예를 들어, 방법(209)이 통신망(120) 상의 다른 컴퓨팅 시스템에서 실행되는 동안, 디스패칭 메카니즘(208)은 컴퓨팅 시스템(100)에 위치될 수 있다. 방법(209)이 다른 컴퓨팅 시스템에 위치되면, 데이타 구조(201')의 디스패칭은 통신망(120)을 통해 다른 컴퓨팅 시스템으로 데이타 구조(201')를 전송하는 것과 관련있을 것이다. 도 3의 방법은 각각의 액세스된 데이타 구조에 대해 반복될 것이다.
도 4는 복수의 규칙들을 한 개의 유력한 규칙으로 리졸브하는 방법(400)의 흐름도를 도시하고, 도 3의 동작(312)의 예를 더 상세히 나타낸다. 첫번째로, 우선순위화 메카니즘은 복수의 적용가능한 규칙들에 적용된다(동작(401)). 그 다음, 우선순위화 메카니즘의 적용이 한 개의 유력한 규칙으로 귀결하는지가 판정된다(결정 블록(402)). 그렇다면(결정 블록(402)에서 예), 방법(400)은 종료한다. 그렇지 않으면(결정 블록에서 아니오), 단지 한 개의 유력한 규칙이 마지막에 있을 때까지 상이한 우선순위화 메카니즘들을 적용하기를 계속하여 프로세스를 반복한다. 이것을 보장하기 위해, 최종 우선순위화 메카니즘은 한 개의 유력한 규칙을 보장하는 알고리즘을 적용할 것이다.
우선순위화 메카니즘들의 예는, 2 개의 규칙들이 모두 적용되는 경우 어느 규칙이 나머지 규칙을 지배할 것인지를 2 개의 조건들 간의 관계가 명시하도록 2 개의 조건들 간에 표현된 관계가 있는 표현 지배 메카니즘(express dominance mechanism)을 포함한다.
다른 예로는, 규칙이 더 낮은 우선순위를 갖는 임의의 다른 규칙에 대해 유력하도록 규칙에 우선순위 레벨을 할당하는 우선순위 레벨 메카니즘(prioritization level mechanism)이 있다.
또 다른 예로는, 조건에 대해 고유의 식별자를 사용하는 고유 식별자 비교 메카니즘(unique identifier comparison mechanism)이 있다. 리스트의 더 높은 고유 식별자들을 갖는 조건들은 리스트의 더 낮은 고유 식별자들을 갖는 조건들에 대해 우선순위를 갖는 우선순위를 나타내는 리스트로 고유 식별자가 정렬될 수 있다. 고유 식별자 비교 메카니즘이 예는 규칙의 표현을 알파벳순으로 순서화하는 것을 포함할 수 있다. 다른 예에서, 각각의 규칙은 추가 필드로서 고유 식별자가 할당된다. 고유 식별자 비교 메카니즘은 유력한 규칙을 보장하는 우선순위화 메카니즘의 예를 나타낸다.
따라서, 본 발명의 원칙들은 결정적인 규칙-기반 디스패치를 허용한다. 게다가, 디스패치 규칙들의 리스트(203)는 실제 디스패치 코드(즉, 비교 모듈(203), 레졸루션 모듈(205), 우선순위화 메카니즘(207), 및 디스패칭 메카니즘(208))와는 독립적으로 관리될 수 있다. 예를 들어, 규칙들의 리스트는 XPATH 문장들을 사용하거나, 임의의 다른 구조화된 방식으로 표현될 수 있다. 규칙들의 변경은 단순히 리스트로부터 규칙들을 추가하거나 삭제하거나, 또는 리스트에 규칙들을 수정하는 것과 관련된다.
본 발명은 그것의 취지 및 기본 특성들로부터 벗어나지 않고 다른 특정 형태들로 구현될 수 있다. 기재된 실시예들은 단지 설명적이지 제한적은 아닌 것으로 모든 면에서 고려되어야 한다. 그러므로, 본 발명의 범위는 상술된 설명에 의해서 보다는 첨부된 청구범위에 의해 지정된다. 청구범위의 동격의 의미 및 범위 내에 발생할 수 있는 모든 변경은 그것들의 범위 내에 속한 것이 되어야 한다.
컴퓨팅 시스템은 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 데이타 구조의 결정적 규칙-기반 디스패치를 수행한다. 컴퓨팅 시스템은 프로세스되는 데이타 구조를 액세스한 후에 규칙 리스트를 평가하여 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별한다. 이들 복수의 규칙들은 데이타 구조의 디스패치에 적용되는 한 개의 유력한 규칙으로 리졸브하고, 그 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 그룹으로 데이타 구조를 디스패치한다. 규칙 평가 및 우선순위화는 한 개 이상의 방법들의 어느 그룹이 데이타 구조를 액세스하는지가 재구성되도록 결정적이다. 규칙들의 리스트는 실제 디스패치 코드에 독립적으로 관리되고, 계속 변화하는 실시간 상황에서 적절하면 동적으로 규칙 리스트에의 규칙 추가, 삭제, 및 수정을 통한 규칙의 변경이 이루어질 수 있다.
도 1은 본 발명의 특징을 구현할 수 있는 적절한 컴퓨팅 시스템을 도시한다.
도 2는 본 발명의 원칙들에 따라 결정적 규칙-기반 디스패치(deterministic rule-based dispatch)를 수행하기 위해 협력적으로 인터랙트할 수 있는 다양한 콤포넌트들을 도시한다.
도 3은 본 발명의 원칙들에 따라 데이타 구조의 결정적 규칙-기반 디스패치를 수행하는 컴퓨팅 시스템을 위한 방법의 흐름도를 도시한다.
도 4는 복수의 규칙들을 한 개의 유력한 규칙(prevailing rule)으로 리졸브(resolve)하는 방법의 흐름도를 도시한다.
<주요 도면 부호 설명>
201, 201' 데이타 구조
202 비교 모듈
203 디스패치 규칙들
204 적용가능 규칙들
205 레졸루션 모듈
206 우선순위화 메카니즘들
207 유력한 규칙
208 디스패칭 메카니즘
209 한 개 이상의 방법들

Claims (40)

  1. 한 개 이상의 방법들의 그룹들에 의해 프로세싱되는 데이타 구조들을 디스패치(dispatch)할 수 있는 컴퓨팅 시스템에서, 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 상기 데이타 구조의 결정적인 규칙-기반 디스패치(deterministic rule-based dispatch)를 수행하는 상기 컴퓨팅 시스템을 위한 방법으로서 -어디로 상기 데이타 구조가 디스패치되어야 하는지에 대해 대립하는 복수의 규칙들의 존재에도 불구하고 상기 디스패치는 결정적임-,
    프로세스되는 데이타 구조를 액세스하는 동작;
    규칙들의 리스트를 평가하여 상기 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별하기 위한 동작 -상기 복수의 규칙들의 각각은 상기 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 상이한 그룹을 명시함- ;
    상기 복수의 규칙들을 리졸브(resolve)하여 상기 데이타 구조의 디스패치를 위해 적용될 유력한 규칙(prevailing rule)을 식별하기 위한 동작; 및
    상기 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 상기 그룹으로 상기 데이타 구조를 디스패치하는 동작
    을 포함하는 방법.
  2. 제1항에 있어서, 상기 데이타 구조는 메시지이고, 데이타 구조를 액세스하는 상기 동작은 통신망을 통해 상기 메시지를 수신하는 동작을 포함하는 방법.
  3. 제1항에 있어서, 상기 복수의 규칙들을 리졸브하여 유력한 규칙을 식별하기 위한 상기 동작은,
    제1 우선순위화 메카니즘(prioritization mechanism)을 적용하는 동작
    을 포함하는 방법.
  4. 제3항에 있어서, 상기 제1 우선순위화 메카니즘은 표현 지배 메카니즘(express dominance mechanism), 우선순위화 레벨 메카니즘(prioritization level mechanism), 및 고유 식별자 비교 메카니즘(unique identifier comparison mechanism)으로 구성된 그룹으로부터 선택되는 방법.
  5. 제3항에 있어서, 상기 제1 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히는 방법.
  6. 제5항에 있어서, 상기 제1 우선순위화 메카니즘의 적용은 상기 복수의 규칙들로부터 단지 한 개의 규칙만이 임의의 상황에서 유력할 것임을 보장하는 방법.
  7. 제3항에 있어서, 상기 복수의 규칙들을 리졸브하여 유력한 규칙을 식별하기 위한 상기 동작은,
    상기 제1 우선순위화 메카니즘의 적용은 여전히 한 개 이상의 규칙들로 귀결됨을 결정하는 동작; 및
    응답하여, 제2 우선순위화 메카니즘을 적용하는 동작
    을 더 포함하는 방법.
  8. 제7항에 있어서, 상기 제2 우선순위화 메카니즘은 표현 지배 메카니즘, 우선순위화 레벨 메카니즘, 및 고유 식별자 비교 메카니즘으로 구성되는 그룹으로부터 선택되는 방법.
  9. 제7항에 있어서, 상기 제2 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히는 방법.
  10. 제9항에 있어서, 상기 제2 우선순위화 메카니즘의 적용은 상기 복수의 규칙들로부터 단지 한 개의 규칙만이 임의의 상황에서 유력할 것임을 보장하는 방법.
  11. 제7항에 있어서, 상기 복수의 규칙들을 리졸브하여 유력한 규칙을 식별하기 위한 상기 동작은,
    상기 제2 우선순위화 메카니즘의 적용은 여전히 한 개 이상의 규칙들로 귀결됨을 결정하는 동작; 및
    응답하여, 제3 우선순위화 메카니즘을 적용하는 동작
    을 더 포함하는 방법.
  12. 제11항에 있어서, 상기 제3 우선순위화 메카니즘은 표현 지배 메카니즘, 우선순위화 레벨 메카니즘, 및 고유 식별자 비교 메카니즘으로 구성되는 그룹으로부터 선택되는 방법.
  13. 제11항에 있어서, 상기 제3 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히는 방법.
  14. 제13항에 있어서, 상기 제3 우선순위화 메카니즘의 적용은 상기 복수의 규칙들로부터 단지 한 개의 규칙만이 임의의 상황에서 유력할 것임을 보장하는 방법.
  15. 제11항에 있어서, 상기 제3 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히지 않고, 상기 방법은,
    상기 복수 규칙들이 상기 유력한 규칙만으로 좁혀질 때까지 우선순위화 규칙들의 적용을 계속하는 동작
    을 더 포함하는 방법.
  16. 제1항에 있어서, 한 개 이상의 방법들의 상기 그룹은 한 개의 방법을 포함하는 방법.
  17. 제1항에 있어서, 한 개 이상의 방법들의 상기 그룹은 복수의 방법들의 시간적으로 순서화된 체인을 포함하는 방법.
  18. 제1항에 있어서, 상기 데이타 구조는 제1 데이타 구조이고, 상기 복수의 규칙들은 제1 복수의 규칙들이고, 상기 유력한 규칙은 제1 유력한 규칙이고, 한 개 이상의 방법들의 상기 그룹은 한 개 이상의 방법들의 제1 그룹이고, 상기 방법은,
    프로세스되는 제2 데이타 구조를 액세스하는 동작;
    상기 규칙들의 리스트를 평가하여 상기 제2 데이타 구조의 디스패치에 적용되는 제2 복수의 규칙들을 식별하기 위한 동작 -상기 제2 복수의 규칙들의 각각은 상기 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 상이한 그룹을 명시함-;
    상기 제2 복수의 규칙들을 리졸브하여 상기 데이타 구조의 디스패치를 위해 적용될 제2 유력한 규칙을 식별하기 위한 동작; 및
    상기 제2 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 제2 그룹으로 상기 제2 데이타 구조를 디스패치하는 동작
    을 더 포함하는 방법.
  19. 제18항에 있어서, 상기 제1 유력한 규칙은 상기 제2 유력한 규칙과 동일하고, 한 개 이상의 방법들의 상기 제1 그룹은 한 개 이상의 방법들의 상기 제2 그룹과 동일한 방법.
  20. 제18항에 있어서, 상기 제1 유력한 규칙은 상기 제2 유력한 규칙과는 상이하고, 한 개 이상의 방법들의 상기 제1 그룹은 한 개 이상의 방법들의 상기 제2 그룹과는 상이한 방법.
  21. 제20항에 있어서, 한 개 이상의 방법들의 상기 제1 그룹에서 한 개 이상의 방법들은 또한 한 개 이상의 방법들의 상기 제2 그룹에 있는 방법.
  22. 제21항에 있어서, 한 개 이상의 방법들의 상기 그룹은 상기 컴퓨팅 시스템에 의해 실행되는 방법.
  23. 제21항에 있어서, 상기 컴퓨팅 시스템은 제1 컴퓨팅 시스템이고, 한 개 이상의 방법들의 상기 그룹은 상기 제1 컴퓨팅 시스템이 통신망을 통해 통신할 수 있는 제2 컴퓨팅 시스템에 의해 실행되고, 한 개 이상의 방법들의 상기 그룹으로 상기 데이타 구조를 디스패치하는 상기 동작은,
    상기 통신망을 통해 상기 제2 컴퓨팅 시스템으로 상기 데이타 구조를 전송하는 동작
    을 포함하는 방법.
  24. 제1항에 있어서, 상기 데이타 구조는 SOAP(Simple Object Access Protocol) 엔벨로프(envelope)인 방법.
  25. 제24항에 있어서, 상기 규칙들의 리스트는 XPATH 문장들을 사용하여 표현되는 방법.
  26. 제1항에 있어서, 상기 규칙들의 리스트는 XPATH 문장들(statements)을 사용하여 표현되는 방법.
  27. 제1항에 있어서,
    상기 규칙들의 리스트를 수정하기 위한 명령을 액세스하는 동작; 및
    상기 명령에 응답하여 상기 규칙들의 리스트를 자동으로 수정하는 동작
    을 더 포함하는 방법.
  28. 한 개 이상의 방법들의 그룹들에 의한 프로세싱을 위한 데이타 구조들을 디스패칭을 할 수 있는 컴퓨팅 시스템에서의 사용을 위한 컴퓨터 프로그램 제품으로서 -상기 컴퓨터 프로그램 제품은 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 상기 데이타 구조의 경정적인 규칙-기반의 디스패치를 수행하는 상기 컴퓨팅 시스템을 위한 방법을 구현하고, 어디로 상기 데이타 구조가 디스패치되어야 하는지에 대해 대립하는 복수의 규칙들의 존재에도 불구하고 상기 디스패치는 결정적임-, 상기 컴퓨팅 시스템의 한 개 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 시스템이,
    프로세스되는 데이타 구조를 액세스하는 동작;
    규칙들의 리스트를 평가하여 상기 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별하기 위한 동작 -상기 복수의 규칙들의 각각은 상기 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 상이한 그룹을 명시함-;
    상기 복수의 규칙들을 리졸브하여 상기 데이타 구조의 디스패치를 위해 적용될 유력한 규칙을 식별하기 위한 동작; 및
    상기 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 상기 그룹으로 상기 데이타 구조를 디스패치하는 동작
    을 수행하도록 하는 컴퓨터 실행가능 명령들을 갖는 한 개 이상의 컴퓨터 판독가능 매체들을 포함하는 컴퓨터 프로그램 제품.
  29. 제28항에 있어서, 상기 한 개 이상의 컴퓨터 판독가능 매체들은 물리적 메모리 매체들을 포함하는 컴퓨터 프로그램 제품.
  30. 제29항에 있어서, 상기 물리적 메모리 매체들은 지속적 메모리를 포함하는 컴퓨터 프로그램 제품.
  31. 제29항에 있어서, 상기 물리적 메모리 매체들은 시스템 메모리를 포함하는 컴퓨터 프로그램 제품.
  32. 제28항에 있어서, 상기 데이타 구조는 메시지이고, 데이타 구조를 액세스하는 상기 동작은 통신망을 통해 상기 메시지를 수신하는 동작을 포함하는 컴퓨터 프로그램 제품.
  33. 제28항에 있어서, 상기 복수의 규칙들을 리졸브하여 유력한 규칙을 식별하기 위한 상기 동작은,
    제1 우선순위화 메카니즘을 적용하는 동작
    을 포함하는 컴퓨터 프로그램 제품.
  34. 제33항에 있어서, 상기 제1 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히는 컴퓨터 프로그램 제품.
  35. 제33항에 있어서, 상기 제1 우선순위화 메카니즘의 적용은 상기 복수의 규칙들을 상기 유력한 규칙으로 좁히지 않고, 상기 방법은,
    상기 복수의 규칙들이 상기 유력한 규칙만으로 좁혀질 때까지 우선순위화 규칙들의 적용을 계속하는 동작
    을 더 포함하는 컴퓨터 프로그램 제품.
  36. 제28항에 있어서, 상기 방법은,
    상기 규칙들의 리스트를 수정하기 위한 명령을 액세스하는 동작; 및
    상기 명령에 응답하여 상기 규칙들의 리스트를 자동으로 수정하는 동작
    을 더 포함하는 컴퓨터 프로그램 제품.
  37. 한 개 이상의 방법들의 그룹들에 의한 프로세싱을 위해 데이타 구조들을 디스패칭할 수 있는 컴퓨팅 시스템에서, 추가 프로세싱을 위해 한 개 이상의 방법들의 그룹으로 상기 데이타 구조의 결정적인 규칙-기반의 디스패치를 수행하는 상기 컴퓨팅 시스템을 위한 방법으로서 -어디로 상기 데이타 구조가 디스패치되어야 하는지에 대해 대립하는 복수의 규칙들의 존재에도 불구하고 상기 디스패치는 결정적임-,
    프로세스되는 데이타 구조를 액세스하는 동작; 및
    한 개 이상의 방법들의 그룹으로 상기 데이타 구조를 결정적으로 디스패치하기 위해 규칙들의 리스트를 사용하는 단계
    를 포함하는 방법.
  38. 제37항에 있어서, 한 개 이상의 방법들의 그룹으로 상기 데이타 구조를 결정적으로 디스패치하기 위해 규칙들의 리스트를 사용하는 상기 단계는,
    상기 규칙들의 리스트를 평가하여 상기 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별하기 위한 동작 -상기 복수의 규칙들의 각각은 상기 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 상이한 그룹을 명시함-;
    상기 복수의 규칙들을 리졸브하여 상기 데이타 구조의 디스패치를 위해 적용될 유력한 규칙을 식별하기 위한 동작; 및
    상기 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 상기 그룹으로 상기 데이타 구조를 디스패치하는 동작
    을 포함하는 방법.
  39. 제37항에 있어서, 상기 데이타 구조는 메시지이고, 데이타 구조를 액세스하는 상기 동작은 통신망을 통해 상기 메시지를 수신하는 동작을 포함하는 방법.
  40. 컴퓨팅 시스템으로서,
    한 개 이상의 프로세서들;
    시스템 메모리;
    규칙들의 리스트 -각각의 규칙들은 조건 및, 상기 조건이 맞으면 데이타 구조가 디스패치되어야 하는 한 개 이상의 방법들의 그룹을 명시함- 를 구비한 한 개 이상의 컴퓨터 판독가능 매체들을 포함하고,
    상기 한 개 이상의 컴퓨터 판독 가능 매체들은, 상기 한 개 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 시스템이,
    데이타 구조를 액세스하고, 상기 규칙들의 리스트를 평가하여 상기 데이타 구조의 디스패치에 적용되는 복수의 규칙들을 식별하기 위해 구성된 비교 모듈;
    어느 대립되는 규칙들이 우선순위를 갖는지를 식별하기 위해 구성되는 복수의 우선순위화 메카니즘들 -상기 우선순위화 메카니즘들의 적어도 한 개는 단지 한 개의 유력한 규칙만을 보장함-;
    상기 복수의 우선순위화 메카니즘들을 사용하여 상기 데이타 구조의 디스패치를 위해 적용될 상기 유력한 규칙을 식별하기 위해 구성되는 레졸루션 모듈(resolution module); 및
    상기 유력한 규칙에 의해 명시된 한 개 이상의 방법들의 상기 그룹으로 상기 데이타 구조를 디스패치하기 위해 구성되는 디스패칭 메카니즘
    을 상기 시스템 메모리에 갖추도록 하는 컴퓨터 실행가능 명령들을 더 구비하는 컴퓨팅 시스템.
KR1020050005902A 2004-01-23 2005-01-21 코드로의 객체의 결정적 규칙 기반 디스패치 KR20050076762A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/763,530 US7624141B2 (en) 2004-01-23 2004-01-23 Deterministic rule-based dispatch of objects to code
US10/763,530 2004-01-23

Publications (1)

Publication Number Publication Date
KR20050076762A true KR20050076762A (ko) 2005-07-27

Family

ID=34634611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050005902A KR20050076762A (ko) 2004-01-23 2005-01-21 코드로의 객체의 결정적 규칙 기반 디스패치

Country Status (7)

Country Link
US (1) US7624141B2 (ko)
EP (1) EP1557756B1 (ko)
JP (1) JP4820553B2 (ko)
KR (1) KR20050076762A (ko)
CN (1) CN1645856B (ko)
AT (1) ATE493705T1 (ko)
DE (1) DE602005025553D1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818631B1 (en) * 2004-04-30 2010-10-19 Sprint Communications Company L.P. Method and system for automatically generating network trouble tickets
JP5273884B1 (ja) * 2012-04-09 2013-08-28 伸一 石田 構造解析装置及びプログラム
US8732207B2 (en) 2012-07-02 2014-05-20 International Business Machines Corporation Attribute-based linked tries for rule evaluation
US9262451B1 (en) * 2013-07-01 2016-02-16 Amazon Technologies, Inc. Data quality checking and automatic correction

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JPH0362224A (ja) * 1989-07-31 1991-03-18 Meidensha Corp プロダクションシステムの競合解消方式
JPH04127328A (ja) * 1990-09-19 1992-04-28 Nippon Telegr & Teleph Corp <Ntt> 複数のモジュールからなるシステムの実行制御方法
JPH06222932A (ja) * 1993-01-25 1994-08-12 Omron Corp コンピュータ装置
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
JP2001117774A (ja) * 1999-10-21 2001-04-27 Japan Science & Technology Corp 適応化機構を備えたプロダクションシステム
WO2001065417A1 (en) 2000-03-02 2001-09-07 Idini Corporation Improved device independent remote data management
JP4145477B2 (ja) * 2000-11-07 2008-09-03 富士通株式会社 オブジェクト連携装置
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US20060155529A1 (en) * 2002-08-16 2006-07-13 Teamware Group Oy System and method for a context-independent framework for management and execution of xml processing tasks
US20040039803A1 (en) * 2002-08-21 2004-02-26 Eddie Law Unified policy-based management system
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US20040177139A1 (en) * 2003-03-03 2004-09-09 Schuba Christoph L. Method and apparatus for computing priorities between conflicting rules for network services

Also Published As

Publication number Publication date
US7624141B2 (en) 2009-11-24
JP2005228309A (ja) 2005-08-25
DE602005025553D1 (de) 2011-02-10
CN1645856A (zh) 2005-07-27
US20050198108A1 (en) 2005-09-08
ATE493705T1 (de) 2011-01-15
EP1557756B1 (en) 2010-12-29
JP4820553B2 (ja) 2011-11-24
CN1645856B (zh) 2010-06-09
EP1557756A3 (en) 2006-01-18
EP1557756A2 (en) 2005-07-27

Similar Documents

Publication Publication Date Title
US9852015B2 (en) Automatic discovery of a JavaScript API
US9116680B2 (en) Dynamically building locale objects or subsections of locale objects based on historical data
US9942353B2 (en) Management of connections within a messaging environment based on the statistical analysis of server responsiveness
US20040095387A1 (en) Virtualized and realized user interface controls
US20150363195A1 (en) Software package management
US9684493B2 (en) R-language integration with a declarative machine learning language
US8938712B2 (en) Cross-platform virtual machine and method
US7721278B2 (en) Modular server architecture for multi-environment HTTP request processing
US11531526B1 (en) Creating portable serverless applications
US20220188126A1 (en) Systems and methods for running applications associated with browser-based user interfaces within multi-developer computing platforms
JP2016066367A (ja) 柔軟性の高いメタデータの合成
CN109558121B (zh) 接口驱动程序的开发方法、装置、设备及存储介质
KR20050076762A (ko) 코드로의 객체의 결정적 규칙 기반 디스패치
US11494184B1 (en) Creation of transportability container files for serverless applications
KR102443171B1 (ko) 이기종 컴퓨팅 환경에서 데이터 타입 변환을 지원하기 위한 시스템 및 방법
CN116051031A (zh) 项目调度系统、介质及电子设备
US8819494B2 (en) Automatically changing parts in response to tests
US10262054B2 (en) Database and service upgrade without downtime
CN110599112A (zh) 一种网络页面开发、维护方法和装置
US11907176B2 (en) Container-based virtualization for testing database system
CN112445820A (zh) 数据转换方法及装置
US11340897B1 (en) Subject matter expert identification for computer software
US20230359440A1 (en) Externally-initiated runtime type extension
US20240184550A1 (en) Dynamically applying profile-guided optimization to a dbms
CN111782248B (zh) 一种终端应用的更新方法、装置和电子设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid