KR20070001981A - 복합 웹 서비스를 자기-치유하기 위한 장치 및 방법 - Google Patents

복합 웹 서비스를 자기-치유하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20070001981A
KR20070001981A KR1020067017491A KR20067017491A KR20070001981A KR 20070001981 A KR20070001981 A KR 20070001981A KR 1020067017491 A KR1020067017491 A KR 1020067017491A KR 20067017491 A KR20067017491 A KR 20067017491A KR 20070001981 A KR20070001981 A KR 20070001981A
Authority
KR
South Korea
Prior art keywords
web service
healing
alternate
composite
self
Prior art date
Application number
KR1020067017491A
Other languages
English (en)
Other versions
KR100951093B1 (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 KR20070001981A publication Critical patent/KR20070001981A/ko
Application granted granted Critical
Publication of KR100951093B1 publication Critical patent/KR100951093B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • 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/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Agricultural Chemicals And Associated Chemicals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법이 개시되며, 상기 복합 웹 서비스 프로세스는 적어도 하나의 기본 웹 서비스를 호출한다. 기본 웹 서비스에는 상기 기본 웹 서비스에 대해서 독립적이고, 해당 기본 웹 서비스의 기능과 동일한 기능을 구현하는, 적어도 하나의 대체 웹 서비스가 제공된다. 상기 복합 웹 서비스 프로세스의 모델 정의는 상기 기본 웹 서비스의 호출을 활성화 시키는 단계들을 검색하기 위하여, 구문해석된다. (상기 복합 웹 서비스 프로세스의 모델 정의로부터 식별되는) 상기 기본 웹 서비스의 호출을 활성화시키는 상기 단계들 다음에, 치유 논리들이 삽입된다. 상기 복합 웹 서비스 프로세스를 실행하는 과정 동안에, 상기 치유 논리는 이전의 호출 단계에서 상기 기본 웹 서비스의 호출이 실패인지 아닌지를 검출하고, 호출 실패가 검출된 경우, 성공적으로 호출되지 못한 기본 웹 서비스에 대응하는 상기 대체 웹 서비스를 호출한다.

Description

복합 웹 서비스를 자기-치유하기 위한 장치 및 방법{METHOD AND APPARATUS FOR SELF-HEALTHING COMPOSITE WEB SERVICES}
본 발명은 복합 웹 서비스를 치유하기 위한 장치 및 방법에 관한 것으로, 특히 자기-치유 능력을 지닌 복합 웹 서비스를 제공하기 위한 장치 및 방법과, 자기-치유 능력을 지닌 복합 웹 서비스를 실행하기 위한 장치와 방법, 및 자기-치유 능력을 갖는 방법을 처리하는 복합 웹 서비스에 관한 것이다.
인터넷 기술의 성장은 단체들이 그들의 파트너들 및 고객들과 상호 작용하는데에 엄청난 영향을 가지고 있는 혁신의 물결을 폭발시켰다. 특히 복합 웹 서비스 기술은 기업간 협력에 대한 효과적인 자동화를 위한 유망한 기술로서 떠오르고 있다.
웹 서비스는 웹을 거쳐서 발행되고, 위치되며 호출될 수 있는 자체 완결형(self-contained), 자기 설명적인(self-describing) 모듈형 애플리케이션으로서 정의될 수 있다. 이 웹 서비스들은 새로운 서비스들을 형성하도록 구성될 수 있다. 이후에는 다수의 웹 서비스들로 구성되는 새로운 웹 서비스 프로세스를 복합 웹 서 비스 프로세스로 호칭한다. 개별 웹 서비스들로부터 복합 웹 서비스 프로세스를 생성하는 것을 웹 서비스 통합으로 부르는데, 이것은 새로운 서비스를 만들기 위하여 현존하는 서비스들(또는 빌딩 블록들)을 통합하는 것이다. 복합 웹 서비스는 미리 결정된 서비스 흐름 모델에 따라서 상호 작용하는 다수의 파트너 웹 서비스들(기본 웹 서비스들)을 통합하는 것이다. 전술한 파트너 웹 서비스는 기본 웹 서비스 또는 복합 웹 서비스 자신이 될 수 있다. 파트너들의 웹 서비스를 통합함으로써, 복합 웹 서비스는 고객들에게 복합 웹 서비스를 제공하고, 고객들의 복합적인 요구를 만족시켜 준다. 일반적으로 복합 웹 서비스는 웹 서비스 프로세스 모델에 의하여 정의된다. 예를 들어, 복합 웹 서비스 여행사는 항공기 예약, 자동차 대여, 여행일정 계획, 등과 같이 웹 서비스 프로세스 모델을 따라서 순차적으로 또는 동시에 실행되는 다수의 웹 서비스들을 끌어 모을 수 있다. 도 1은 복합 웹 서비스의 예시적인 여행사 서비스를 나타낸다. 고객은 여행사가 항공기 서비스, 호텔 서비스, 렌트카 서비스를 호출하는 것에 기초하여 여행사 서비스에 요청을 발행하고, 이들 서비스를 실행하기 위하여 은행 서비스가 호출되어야 한다.
다음으로, 웹 서비스 프로세스와 관련한 표준들이 우선 설명된다. IBM의 WSFL(웹 서비스 흐름 언어: Web Service Flow Language)와 마이크로 소프트의 XLANG(확장형 언어: eXtensible language)는 웹 서비스 통합을 위한 표준을 규정하는 두개의 가장 초기의 언어들이다. WSFL은 활동의 특정 순서와 특정 프로세스를 위한 데이터 교환을 정의한다. 이것은 실행 시퀀스와 특정 동작으로의 흐름에서의 각 단계의 매핑(mapping) 모두를 정의한다. WSFL은 예외 처리를 지원하지만, 거래 를 위한 직접적인 지원을 갖지는 않는다. XLANG은 비지니스 프로세스의 생성과 웹 서비스 제공자들 사이의 상호작용에 중점을 둔다. 이것은 보상을 통한 장기간의 거래를 지원하는 견고한 예외처리 수단을 포함한다.
WFSL 및 XLANG에 의하여 골격이 갖추어지는 웹 서비스 작업흐름의 명세 내역은 IBM, 마이크로 소프트, 및 BEA 즉, BPEL4WS(Business Process Exception Language for Web Service: 웹 서비스를 위한 비지니스 프로세스 예외 언어)로부터의 새로운 명세 내역으로 최근에 대체되었다. BPEL4WS는 비지니스 프로세스 상호작용에서 웹 서비스들의 행위에 대한 모형을 만든다. 상기 명세 내역은 비지니스 흐름에 참여하는 웹 서비스들을 조정하는데 필요한 제어 논리와 데이터 교환을 설명하기 위한 XML 기반의 문법을 제공한다. 이 웹 서비스들은 이후 웹 서비스 프로세스 엔진, 예를 들어 BPWS4J에 의하여 번역되고 실행될 수 있는데, 이 엔진은 웹 서비스 프로세스의 인스턴스(instance)를 실행한다. 실행 동안 웹 서비스 프로세스는 다수의 파트너 웹 서비스들을 호출할 수 있다. 도 2는 BPEL4WS 프로세스의 개략적인 도표를 나타낸다. 도 2에서 BPEL4WS 프로세스는 다수의 단계를 포함하는데, 이들 중 몇몇은 외부의 웹 서비스들을 호출한다. 고객들은 WSDL(Web Service Describing Language: 웹 서비스 서술 언어)를 통해서 BPEL4WS에 대한 요청을 발행하고 응답을 얻는다. 이 프로세스는 역할과 파트너, 지속성과 적응성을 구별짓는 예외 취급 및 거래 특성들과 같은 특징들을 갖는다.
고객들 뿐 만 아니라 비지니스 파트너들을 유치하고 유지하기 위하여, 상기 복합 웹 서비스들은 지속적이고 신뢰성 있는 방법으로 실행될 필요가 있다. 특히 웹 서비스 프로세스는 파트너들이 기능 정지되는 경우에서도 고객들에 약속한 서비스 목적들에 부합해야 하는 것이 중요하다. 상술한 여행사 서비스를 예로 들어, 중국 남방항공 항공권이 예약된 것으로 가정해 보자. 미리 결정된 비지니스 프로세스에 따라서, 자동차는 뉴 컨셉 렌트카 회사로부터 대여 받아야 하지만, 몇가지 시스템 오류, 예를 들어, 통신장애, 시스템 정지가 렌트카 회사의 웹 서비스에서 발생하게 된다. 만일 여행사의 웹 서비스 프로세스가 이러한 장애를 복구할 수 없다면, 이 여행사 서비스는 고객에게 차량 대여가 불가능하다고 "죄송합니다"를 보내야 한다. 고객의 입장에서는 이 여행사의 질이 낮고 신뢰성이 없는 것이다. 그러나 만일 이 여행사가 장애를 복구할 수 있다면, 고객의 요구조건에 궁극적으로 부합할 수 있다.
그러므로, 복합 웹 서비스에서 파트너의 웹 서비스에 장애가 발생하면 자기-치유가 달성될 수 있을 것이 요망된다. 자기-치유는 웹 서비스 프로세스가 자신의 파트너 웹 서비스의 장애시에도 그 본래의 서비스 목적을 지속적으로 실행하고 부합시키는 능력을 구비함을 의미한다. IBM에 의하여 제안된 하나의 자동 연산 해법에 따르면, 자기-치유는 시스템이 장애를 발견, 진단, 및 대응할 수 있는 것을 의미한다. 이 시스템은 먼저 고장난 요소를 검출하고, 이후 이 요소를 고치거나 격리시키도록 오프-라인으로 만든 후, 최종적으로 고치거나 대체된 요소를 어떤 명백한 애플리케이션의 장애없이 서비스에 재진입시킴으로써, 고장난 요소를 복구할 수 있다. 상기 시스템은 가능한 문제들을 예측하고, 장애가 애플리케이션에 충격을 가하는 것을 방지하도록 행동을 취한다.
그러나, 복합 웹 서비스의 자기-치유를 만들기 위한 뚜렷한 다른 해결책은 현재 존재하지 않는다. 가능한 해결책에는 다음이 포함된다.
즉, (1) 첫째로, 신뢰성을 보장하기 위하여 특별한 서비스 플랫폼을 사용하는 것이다. 분명히 파트너 서비스가 모두 신뢰성이 있다면, 복합 웹 서비스 프로세스는 신뢰성있는 품질로 실행될 수 있다. 현재 IBM의 서비스 도메인(Service Domain)과 같은 몇가지 특별한 서비스 플랫폼들은 서비스 제공자들이 협력을 위한 신뢰성 있는 웹 서비스를 제공할 수 있도록 신뢰성 있는 기본 웹 서비스를 제공할 수 있다. 그러나 이 해결 방법의 단점은 웹 서비스 프로세스에 의하여 구성되는 복합 웹 서비스의 제공자들이 그들의 모든 파트너들에게 파트너 웹 서비스의 신뢰성을 보장하는데 필요한 특별한, 전용 서비스 플랫폼을 구매하고 채택하도록 요구하기가 어렵다는 것이다.
(2) 둘째로, 복합 웹 서비스의 신뢰성을 보장하도록 치유 메카니즘을 제공하기 위하여 웹 서비스 프로세스 엔진을 사용하는 것이다. 그러나 이러한 치유 메카니즘은 엔진에서 구현되는 바와 같이, 아마도 몇 안되는 구성 기능으로 고정되고 눈에 띄지 않는다. 제공자 또는 관리자와 같은 복합 웹 서비스 프로세스의 보유자는 이러한 치유 메카니즘을 알맞게 조정하거나 제어할 수 없다.
미국특허 제 6,330,689호는 결함이 있는 프로세스 장애 애플리케이션을 검출 및 복구하는 시스템 구조를 개시하고 있는데, 여기에서는 로그(log)를 기록하고 조사함으로써 검출이 수행되고, 고장난 애플리케이션을 재시작함으로써 복구가 수행된다. 그러나, 미국특허 제 6,330,689호에 설명된 해결방법은 실시간 복구를 달성 할 수 없다.
미국 공개특허 NO. 2002/0007468호는 네트워크 컴퓨터 시스템의 높은 이용 가능성을 달성하기 위한 시스템 및 방법을 개시하고 있다. 전체적인 높은 이용 가능성은 각 요소에 높은 이용 가능성을 제공함으로써 달성된다. 그러나 복합 웹 서비스에 있어서, 모든 파트너의 웹 서비스가 높은 이용 가능성을 지녀야 한다는 것은 실질적이지 못하다.
미국 공개특허 NO. 2003/0144894호는 웹을 통하여 제공되는 영구적인 서비스를 생성 및 관리하기 위한 시스템 및 방법을 개시하고 있는데, 이것은 개별 서비스의 자기 치유에 관련된다. 미국 공개특허 NO. 2003/0144894호에 설명된 해결방법은 결함이 있는 개별 서비스를 검출 및 재구성하기 위하여 관리자 모드(managing agent mode)를 사용하고, 실시간으로 재구성된 서비스를 검색하며, 서비스를 다시 호출한다. 이 특허는 각 서비스가 서비스의 신뢰성을 달성하기 위하여 이 특허에 의하여 정의되는 관리자 모드를 따라야 할 필요가 있다.
본 발명의 제 1 실시예는 복합 웹 서비스 프로세스가 파트너의 결함에 기인하여 불통되거나 중단되지 않도록, 자신의 파트너 웹 서비스의 결함시 복합 웹 서비스 프로세스를 복구 가능하도록 만든다.
본 발명의 다른 실시예는 웹 서비스 프로세스를 자기-치유하기 위한 유연하고 플랫폼에 독립적인 방법을 제공한다. 이 방법은 웹 서비스가 낮은 비용으로 존속할 수 있어서 웹 서비스의 고객들이 웹서비스 파트너의 고장시에도 필요한 서비스를 계속 제공받을 수 있게 하는 것을 보장할 수 있도록, 자기-감시 및 자기-복구를 수행한다.
본 발명은 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법을 제공하는데, 상기 복합 웹 서비스 프로세스는 적어도 하나의 기본 웹 서비스를 호출한다. 이 방법은, 기본 웹 서비스에 상기 기본 웹 서비스에 대해서 독립적이고, 해당 기본 웹 서비스의 기능과 동일한 기능을 구현하는, 적어도 하나의 대체 웹 서비스를 제공하는 단계와, 상기 기본 웹 서비스의 호출을 활성화 시키는 단계들을 검색하기 위하여, 상기 복합 웹 서비스 프로세스의 모델 정의를 구문해석하는 단계와, 상기 복합 웹 서비스 프로세스의 모델 정의로부터 검색된 상기 기본 웹 서비스의 호출을 활성화시키는 상기 단계들 다음에, 치유 논리들을 삽입하는 단계를 포함한다. 그리고, 상기 복합 웹 서비스 프로세스를 실행하는 과정 동안에, 상기 치유 논리는 상기 기본 웹 서비스의 이전 호출이 실패인지 아닌지를 검출하고, 호출 실패가 검출된 경우, 실패되어 호출될 상기 기본 웹 서비스에 대응하는 상기 대체 웹 서비스를 호출한다.
본 발명은 추가로 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치를 제공하는데, 이 복합 웹 서비스 프로세스는 적어도 하나의 기본 웹 서비스를 호출하는 한다. 상기 장치는, 기본 웹 서비스에 상기 기본 웹 서비스에 대해서 독립적이고, 해당 기본 웹 서비스의 기능과 동일한 기능을 구현하는, 적어도 하나의 대체 웹 서비스를 제공하기 위한 대체 웹 서비스 저장소와, 상기 기본 웹 서비스의 호출을 활성화 시키는 단계들을 식별하기 위하여, 상기 복합 웹 서비스 프로세스의 모델 정의를 구문해석하기 위한 모델 구문해석 수단과, 상기 복합 웹 서비스 프로세스의 모델 정의로부터 식별된 상기 기본 웹 서비스의 호출을 활성화시키는 상기 단계들 다음에, 치유 논리들을 삽입하기 위한 치유 논리 삽입수단을 포함한다. 그리고, 상기 복합 웹 서비스 프로세스를 실행하는 과정 동안에, 상기 치유 논리는 상기 기본 웹 서비스의 이전 호출이 실패인지 아닌지를 검출하고, 호출 실패가 검출된 경우, 실패되어 호출될 상기 기본 웹 서비스에 대응하는 상기 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출한다.
본 발명은 추가로, 적어도 하나의 기본 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 실행하기 위한 장치를 제공한다. 이 장치는 대체 웹 서비스 저장소와 함께 사용되는데, 이 저장소에서 기본 웹 서비스에는 상기 기본 웹 서비스에 독립적이고 대응 기본 웹 서비스의 기능과 동일한 기능을 실행하는 적어도 하나의 대체 웹 서비스가 제공된다. 이 장치는 상기 복합 웹 서비스 프로세스에 따라서 상기 장치가 기본 웹 서비스의 호출을 실행한 후에, 상기 호출이 성공적인지를 판정하기 위한 자기-치유 요소를 포함한다. 호출 실패가 발생했던 것으로 판정된 경우에, 상기 자기-치유 요소는 성공적으로 호출되지 않았던 상기 기본 웹 서비스에 대응하는 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출할 것이다.
본 발명은 추가로, 적어도 하나의 기본 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 실행하기 위한 방법을 제공한다. 이 방법은 상기 기본 웹 서비스의 호출을 실행한 후에, 이 호출이 성공적인지를 판정하는 단계와, 호출 실패가 발생했던 것으로 판정된 경우, 성공적으로 호출되지 않았던 기본 웹 서비스에 대응하는 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출하는 단계를 포함한다. 상기 대체 웹 서비스 저장소에서, 상기 기본 웹 서비스에는 이 기본 웹 서비스에 독립적이고 대응 기본 웹 서비스의 기능과 동일한 기능을 구현하는 적어도 하나의 대체 웹 서비스가 제공된다.
본 발명의 장점은:
(1) 첫째로, 특정의 서비스 플랫폼을 채택하는 것 보다 더 실현 가능하다. 본 발명은 플랫폼에 대해 독립적인데, 이는 복합 웹 서비스 프로세스의 수준에 대한 신뢰성을 보장하며, 파트너의 웹 서비스를 제공하는 서비스 플랫폼에 대해서 특별한 요구조건을 갖지 않는다. 즉, 본 발명은 각 파트너의 웹 서비스가 높은 이용 가능성을 달성하도록 요구하지 않는다. 느슨하게 결합된 웹 서비스 시대에서 이것은 보다 더 실현 가능하다.
(2) 둘째로, 요구에 따라 변화될 수 있다(보유자 지향적). 본 발명은 복합 웹 서비스의 보유자가 치유 메카니즘을 알맞게 수정하는 것을 허용하며, 이들 치유 메카니즘은 요구에 따라서 쉽게 복합 웹 서비스 프로세스에 통합될 수 있다.
(3) 셋째로, 낮은 비용이다. 파트너가 고장나지 않으면, 서비스 프로세스는 전혀 영향을 받지 않는다. 만일 파트너가 고장이 나면, 서비스 프로세스는 다른 호출을 실행할 뿐이다. 비록 다른 서비스를 호출하는 것이 약간의 성능을 위한 비용을 가져올 것이지만, 이는 전체 프로세스의 신뢰성을 보장한다. 다음의 시나리오를 고려해 보자. 복합 웹 서비스 프로세스가 100개의 파트너 서비스를 호출할 필요가 있고, 첫 번째 99개의 호출이 성공적이지만, 나머지 하나는 실패한다. 여기에 개시된 방법이 없다면, 전체 프로세스 단계는 실패할 것이고, 첫번째 99개의 파트너들의 작업은 역시 무효로 될 것이다. 그러나 본 발명의 방법을 가지고는, 이 서비스 프로세스가 계속 실행, 즉 고장난 파트너의 웹 서비스를 위한 하나의 후보 웹 서비스가 호출되고, 결과가 되돌아 온다. 따라서, 첫 번째 99개의 파트너의 작업은 유지되고, 복합 웹 서비스의 비용은 감소한다.
도 1은 복합 웹 서비스의 보기를 나타낸다.
도 2는 BPEL4WS 프로세스의 개략적인 도표를 나타낸다.
도 3은 본 발명에 따른 자기-치유 능력을 지닌 복합 웹 서비스 프로세스를 제공하기 위한 관련 장치들을 개략적으로 나타낸다.
도 4는 본 발명에 따른 자기-치유 능력을 지닌 복합 웹 서비스 프로세스를 제공하기 위한 방법에 대한 흐름도를 나타낸다.
도 5는 치유자(healer)의 기본 프로세스에 대한 흐름도를 나타낸다.
도 6은 복합 웹 서비스 프로세스의 자기-치유에 대한 흐름도를 나타낸다.
도 7(a)는 BPEL4WS 프로세스의 보기를 나타낸다.
도 7(b)는 도 7(a)에 나타낸 예로서의 자기-치유 BPEL4WS 프로세스를 나타낸다.
도 8은 프로세스 엔진이 어떻게 파트너의 웹 서비스를 작동의 구현으로서 호 출하는지를 나타낸다.
도 9는 본 발명에 따른 자기-치유 프로세스 엔진을 나타낸다.
프로세스 설계자로부터 서비스 제공자에게 전달되는 웹 서비스 프로세스는 전통적인 판독 불가능한 2진 코드 대신, XML 문서와 같은 평문 형식(declarative form)으로 제공된다. 본 발명은 비즈니스 프로세스를 자동으로 해석하고, 이후 치유 논리들을 비지니스 프로세스 논리 내의 적절한 장소에 삽입한다. 이들 치유 논리는 파트너 웹 서비스가 실패한 경우에, XML 문서로 기술된 원래의 비지니스 프로세스에 충격을 가하지 않고도, 웹 서비스 프로세스가 사용자의 원래의 요구 조건을 계속적으로 만족시키는 것을 보장한다. 동시에 치유 논리는 자체 포함(self-containing)을 구현하도록 자신의 문법과 시맨틱 정의(semantic definition)를 따르는 BPEL4WS 또는 WSFL과 같은 비지니스 프로세스의 명세 내역을 준수한다. 치유 논리를 포함하는 웹 서비스 프로세스는 자기-치유 웹 서비스 프로세스로 호칭될 수 있다. 자기-치유 웹 서비스 프로세스는 명세 내역을 준수하는 어떤 프로세스 실행 플랫폼(프로세스 엔진)에서 배치 및 실행될 수 있다. 자기-치유 웹 서비스 프로세스가 프로세스 엔진에서 수행될 때 파트너의 웹 서비스가 고장이 나면, 치유 논리는 먼저 고장난 파트너 웹 서비스를 검출 및 기록하고, 대체 웹 서비스를 호출하는 치유자를 어떤 명백한 장애 없이 비지니스 프로세스로 진입시킨다. 파트너 서비스와 이들의 대체 서비스는 파트너 서비스 레지스터에서 미리 설정되어 있다. 파트 너 웹 서비스가 고장난 후, 대체 서비스는 간단히 레지스터에 문의함으로써 호출될 수 있다. 비지니스 프로세스는 계속해서 원래의 요구조건을 만족시킨다.
본 발명에 따른 자기-치유 능력을 지닌 복합 웹 서비스 프로세스를 제공하기 위한 방법과 관련 장치는 도 3 내지 5를 참조하여 상세하게 설명될 것이다.
도 3은 본 발명에 따른 자기-치유 능력을 지닌 복합 웹 서비스 프로세스를 제공하기 위한 관련 장치를 개략적으로 나타낸다. 이 장치는 파트너 웹 서비스 저장소, 치유 발생기, 및 치유자 발생장치를 포함한다. 도 4는 본 발명에 따른 자기-치유 능력을 지닌 복합 웹 서비스 프로세스를 제공하기 위한 방법의 흐름도를 나타낸다.
예로서 도 3에 도시된 것과 같은 복합 웹 서비스 프로세스의 모델에서, 첫째로 단계 1이 수행되고, 이후 단계 2A 및 2B가 병렬로 수행되며, 마지막으로 단계 3이 수행되는데, 여기에서 단계 2A 및 2B는 각각 웹 서비스 "WS2A" 및 "WS2B"를 호출한다.
이 파트너 웹 서비스 저장소는 대체 웹 서비스들을 위한 컨테이너인데, 여기에서, 복합 웹 서비스 프로세스에서 호출될 웹 서비스 WS2A 및 WS2B에는 다수의 대체 웹 서비스들, WS2A_대체_1에서 WS2A_대체_n, 및 WS2B_대체_1에서 WS2B_대체_n이 각각 제공된다. 대체 웹 서비스들은 동일한 기능을 제공하지만, 이들은 상이한 서비스 제공자들에 의하여 제공된다. 예를 들어, 중국 동방항공의 항공기 예약 서비스는 중국 남방항공의 항공기 예약 서비스에 대한 대체 서비스이다. 실제의 서비스 제공자들은 소망의 서비스를 제공하기 위하여 관심있는 파트너 웹 서비스 저 장소에 등록할 수 있다. 파트너 웹 서비스 저장소는 복합 웹 서비스 프로세스의 하나의 파트너 웹 서비스가 이용 가능하지 않을 때 사용될 수 있다. 해당하는 저장소의 대체 웹 서비스는 이용 가능하지 않은 파트너 웹 서비스 대신에 선택되고 호출될 수 있다. 예를 들어, 복합 웹 서비스 프로세스 "여행사"에서, 중국 남방항공의 항공기 예약 서비스가 실패하면, 중국 동방항공의 항공기 예약 서비스가 호출되고, 항공기를 예약하기 위하여 위임받을 것이다.
파트너 웹 서비스 저장소에서 대체 웹 서비스들은 대체-웹-서비스-선택-정책에 따라서 상이한 호출 수준으로 할당될 수 있다. 이 선택 정책은 자기-치유 프로세스가 순위에 따라서 대체 웹 서비스들을 호출할 수 있도록, 서비스의 이용 가능성과 같은 파라미터들을 포함하는 어떤 순위 알고리즘에 기초하여 구성될 수 있다.
치유 발생기는 모델 구문해석 장치, 치유 논리 발생장치, 및 치유 논리 삽입장치를 포함하는데, 이들은 현재의 복합 웹 서비스 프로세스 모델 정의를 추가로 처리하는데 사용된다. 도 4의 단계 S410에서, 모델 구문해석 장치는 파트너 웹 서비스를 활성화 시키는 단계들, 예를 들어 단계 2A 및 단계 2B를 검색하기 위하여 복합 웹 서비스 프로세스 모델 정의의 한 단계를 구문해석하고, 단계 S420에서 이 모델 정의의 단계가 파트너 웹 서비스를 호출할 것인지를 판정한다. 만일 어떤 파트너 웹 서비스가 단계 S420에서 호출되지 않을 것으로 판정되면, 단계 S460으로 진행하는데, 이 단계는 아래에 설명될 것이다. 어떤 파트너 웹 서비스가 단계 S420에서 호출될 것으로 판정되면, 치유 논리 발생장치는 단계 S430에서 치유 논리를 발생시키고, 단계 S440에서 치유 논리 삽입장치가 단계(2A, 2B)를 따르는 상기 발생된 치유 논리를 삽입하는데, 이 단계(2A, 2B)는 이전 단계인 단계(2A, 2B)에서 파트너 웹 서비스의 호출이 성공적인지를 각각 검출하는데 사용되는 도 3의 자기-치유 프로세스 모델에서의 단계들(2A-H, 2B-H)과 같이, 복합 웹 서비스 프로세스의 모델 정의에서 검색되었을 때 파트너 웹 서비스의 호출을 활성화시킨다. 상기 치유 논리는 파트너의 응답 획득여부에 따라서 파트너 웹 서비스의 호출이 성공적인지를 판정할 수 있다.
단계 S450에서, 치유자 발생장치는 도 3의 WS2A-치유자와 WS2B-치유자와 같은, 치유 논리에 해당하는 치유자를 발생시킨다. 이 치유자는 아래 상세하게 설명될 것이다.
단계 S460에서, 상기 웹 서비스 모델이 종료되는지를 판정한다. 상기 모델이 종료된 것으로 판정되면, 본 발명의 방법이 종료한다. 상기 모델이 종료되지 않은 것으로 판정되면, 상기 프로세스는 단계 S410으로 복귀하여, 여기에서 모델 정의의 다음 단계가 구문해석된다.
상기 치유자는 아래에서 상세하게 설명될 것이다. 치유자 그 자체는 웹 서비스로서, 파트너 웹 서비스가 이용 가능하지 않은 경우에 소망의 서비스를 얻기 위하여, 파트너 웹 서비스의 대체 웹 서비스를 파트너 웹 서비스 저장소로부터 호출할 수 있다. 예를 들어, 파트너 웹 서비스 WS2A가 이용 불가능이면, 단계 2A의 출력은 시스템-수준의 예외이다. 이 시스템-수준의 예외는 시스템 고장, 네트워크 고장, 및 애플리케이션 결함 때문에 발생하는 예외를 의미한다. 이 경우, 치유 논리 2A-H는 치유자(WS2A-치유자)를 호출할 것이다. 도 5는 상기 치유자의 기본 프 로세스에 대한 흐름도를 나타낸다. 단계 S510에서, 치유자(WS2A-치유자)는 전술한 대체-웹-서비스-선택-정책, 즉 WS2A_대체_1에 따라서 호출될 대체 웹 서비스를 선택하고, 단계 S520에서 상기 대체 웹 서비스를 호출한다. 이 치유자는 언제 및 어느 파트너 웹 서비스가 그 파트너 웹 서비스 제공자와의 협력에 대한 로그(log)로서 이용 가능하지 않은지를 추가로 기록할 수 있다. 이 치유자는 또한 파트너 웹 서비스 저장소와 통신을 할 수 있으며, 대체 웹 서비스 호출 수준을 평가하는데 참여할 수 있다.
상기 프로세스를 통해서 현재의 복합 웹 서비스 프로세스는 자기-치유 능력을 지닌 자기-치유 복합 웹 서비스 프로세스로 되기 시작하는데, 이 프로세스는 웹 서비스 프로세스 엔진 상에서 실행된다. 복합 웹 서비스 프로세스의 자기-치유 프로세스는 도 6을 참조로하여 아래에 설명될 것이다. 단계 S610에서, 복합 웹 서비스 프로세스의 각 단계들은 복합 웹 서비스 프로세스의 모델 정의에 따라서 실행된다. 단계 S620에서, 파트너 웹 서비스는 복합 웹 서비스 프로세스의 요구에 따라서 호출된다. 그리고, 단계 S630에서 상기 호출이 성공적인지가 판정된다. 호출이 성공적이라고 판정되면, 상기 프로세스는 단계 S650으로 진행한다. 상기 호출이 실패로 판정되면, 치유자 웹 서비스가 단계 S640에서 호출된다. 대체 웹 서비스는 치유자 웹 서비스에 의하여 호출된다. 단계 S650에서, 복합 웹 서비스 프로세스가 이 단계로 종료되는지가 판정된다. 프로세스가 종료되지 않으면, 상기 프로세스는 단계 S610으로 복귀하여 복합 웹 서비스 프로세스를 계속 실행한다. 만일 프로세스가 종료하면, 자기-치유 프로세스가 종료된다.
본 발명에서 개시된 방법에 따른 BPEL4WS에 기초한 실시예는 도 7(a) 및 7(b)를 참조로 하여 아래에 설명될 것이다. 도 7(a)는 BPEL4WS 프로세스의 보기를 나타내는데, 여기에서 고객은 대부 요청을 보내고, 이 요청은 처리되며, 상기 고객은 이 대부 요청이 승인되었는지를 알아낸다. 이 프로세스에서 실행은 메시지 취득, 금융기관의 웹 서비스 호출, 및 최종적으로 고객에 대한 응답으로 이루어진다. 이 3가지 행위는 <수신>, <호출>, 및 <응답> 활동을 사용하는 BPEL에서 정의된다. 구조화된 활동들에 의하여 정의되는 이러한 활동들 사이의 관계는 이들 활동을 운용하는 방법에 대한 제한사항들을 규정한다. 이 보기에서 순서 정하기는 <시퀀스> 활동을 사용하여 달성될 수 있어서, 상기 활동들이 차례로 운용되도록 한다. 도 7(b)는 상기 보기의 자기-치유 BPEL4WS 프로세스를 나타낸다. 이것은 <호출>의 출력 결과가 예외일 때, BPEL4WS 프로세스의 신뢰성을 보장하기 위하여, 대체 파트너 서비스를 호출하는 치유자 웹 서비스를 상기 프로세스가 호출할 것이라는 점에서 상이하다.
상기 보기의 구현 단계들은 다음과 같다.
(1) 첫째로, 파트너 웹 서비스(금융 서비스)를 호출하는 활동(<호출> 금융 서비스)을 검색하기 위하여 웹 서비스 프로세스 문서(대부승인.bpel)를 구문해석하고, 상기 파트너 웹 서비스의 정보를 얻는다.
(2) 둘째로, 파트너 웹 서비스의 대체 웹 서비스를 호출하는 치유자 웹 서비스를 발생시킨다. 대체 웹 서비스의 이름 및 번지와 같은 호출을 위해 필요한 정보는 파트너 웹 서비스 저장소 및 해당 서비스 WSDL로부터 얻을 수 있다.
(3) 셋째로, 이전에 호출된 파트너 웹 서비스가 고장난 경우에 치유자 웹 서비스를 호출하기 위하여, 파트너 웹 서비스를 호출하는 단계 다음에 <절환> 및 <호출> 활동을 삽입한다.
(4) 네째로, 프로세스, 관련 파트너 웹 서비스, 및 치유자 웹 서비스를 배치한다.
(5) 다섯째로, 프로세스 엔진 상에서 자기-치유 복합 웹 서비스 프로세스를 실행한다.
상술한 방법 및 장치는 치유 논리들을 복합 웹 서비스 프로세스에 부가하고, 이후 웹 서비스 프로세스는 복합 웹 서비스 프로세스의 신뢰성을 보장하기 위하여 프로세스 엔진 상에서 실행된다. 본 발명에 따른 방법은 웹 서비스 프로세스 실행 엔진에 의하여 채택되도록 변경될 수 도 있다. 즉, 복합 웹 서비스 프로세스 그 자체는 변경되지 않고, 그 대신 상기 치유 프로세스가 웹 서비스 프로세스에 의하여 실행된다. 이후, "웹 서비스 프로세스 실행 엔진"을 간략하게 "프로세스 엔진"이라 칭한다.
먼저, 프로세스 엔진이 간략하게 설명될 것이다. 복합 웹 서비스 프로세스의 명세 내역을 따라서, 이 명세 내역을 위한 몇개의 도구들이 제공된다. 예를 들어, IBM은 BPWS4J라고 불리는 프로세스 엔진을 제공하는데, 이 엔진 상에서 복합 웹 서비스 프로세스들이 실행될 수 있다. 이 복합 웹 서비스 프로세스 엔진은 실행될 비지니스 프로세스를 기술하는 복합 웹 서비스 프로세스 정의문서와, 파트너 웹 서비스들을 기술하는 WSDL 문서와, 결과의 비지니스 프로세스에 대한 고객들과 의 인터페이스를 기술하는 WDSL 문서를 받아들인다. 이 입력으로부터, 프로세스 엔진은 SOAP(Service-Oriented Architecture and Programming: 서비스-지향 구조 및 프로그래밍) 인터페이스를 지닌 웹 서비스로서 이용 가능하게 만든 프로세스를 발생시킨다. 상기 프로세스의 인터페이스를 기술하는 WDSL 파일은 실행시간에서 검색될 수 있다. 상기 엔진은 또한 프로세스 내에서 부터 웹 서비스들의 호출을 지원한다. 도 8은 어떻게 프로세스 엔진이 파트너 웹 서비스를 활동 구현으로서 호출하는지를 나타낸다. 프로세스 모델은 정의된 후 서비스 요청자를 통해 프로세스 엔진으로 입력된다. 프로세스 엔진은 해당 프로세스를 실행하고, 자신의 서비스 컨테이너 내의 서비스들을 호출하기 위하여 웹 서비스 제공자의 SOAP 처리기로 SOAP 메시지를 전달하는 서비스 호출 유틸리티와 통신하며, SOAP 메시지를 서비스 호출 유틸리티로 복귀시킨다.
도 9는 본 발명에 따른 자기-치유 프로세스 엔진을 나타낸다. 복합 웹 서비스 프로세스 엔진은 치유 요소를 복합 웹 서비스 프로세스 엔진에 삽입함으로써, 파트너 웹 서비스의 고장을 처리할 수 있다. 상술한 치유 논리들과 똑같이, 치유 요소는 지난 호출이 실패했는지를 검출한다. 실패했다면, 이 치유 요소는 서비스 호출 유틸리티를 통해서 실패한 파트너 웹 서비스의 대체 웹 서비스를 호출할 것이다. 이 요소의 작업흐름은 상술한 자기-치유 프로세스와 유사하며, 차이점은 자기-치유는 프로세스 자체가 아닌 프로세스 엔진에서 처리된다는 것 뿐이다. 프로세스 엔진에서 본 발명을 실행하는 장점은 프로세스 모델이 그 자체로 변경되지 않는다는 것이다. 이 프로세스 엔진은 복합 웹 서비스 프로세스의 운용에 대한 신뢰성 을 책임진다. 단점으로는 상기 치유 요소가 고정되고 운용 프로세스의 보유자에 대해 보이지 않는다는 것이다.
비록 본 발명은 본 발명에 대한 바람직한 실시예들을 참조로하여 설명되고 나타내었지만, 당업자라면 형태 상의 다양한 수정과 상세 사항들이 첨부된 청구범위들에 의하여 정의되는 것과 같이 본 발명의 사상과 영역에서 벗어나지 않고도 이루어질 수 있다는 것을 이해해야 할 것이다.

Claims (18)

  1. 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법에 있어서―상기 복합 웹 서비스 프로세스는 적어도 하나의 기본 웹 서비스를 호출함―,
    상기 기본 웹 서비스에 대해서 독립적이고, 해당 기본 웹 서비스의 적어도 하나의 기능을 구현하는 적어도 하나의 대체 웹 서비스를 상기 기본 웹 서비스에 제공하는 단계와,
    상기 기본 웹 서비스의 호출을 활성화 시키는 단계들을 식별하기 위하여, 상기 복합 웹 서비스 프로세스의 모델 정의를 구문해석하는 단계와,
    상기 복합 웹 서비스 프로세스의 모델 정의로부터 식별된 상기 기본 웹 서비스의 호출을 활성화시키는 상기 단계들 다음에 치유 논리들을 삽입하는 단계와,
    상기 복합 웹 서비스 프로세스의 실행 동안에, 상기 치유 논리가 상기 기본 웹 서비스의 이전의 호출이 실패했는지를 검출하고, 호출 실패가 검출된 경우, 상기 치유 논리가 실패되어 호출될 상기 기본 웹 서비스에 대응하는 상기 대체 웹 서비스를 호출하는 단계를 포함하는
    복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  2. 제 1 항에 있어서,
    상기 치유 논리들을 삽입하기 전에 상기 치유 논리를 발생시키는 단계를 더 포함하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  3. 제 1 항에 있어서,
    상기 치유 논리는 상기 기본 웹 서비스로부터 응답을 얻었는지의 여부에 따라서 상기 기본 웹 서비스의 호출이 실패했는지를 판정하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  4. 제 1 항에 있어서,
    상기 대체 웹 서비스 저장소와 통신하고 상기 대체 웹 서비스 저장소의 대체 서비스를 호출하는 치유자를 발생시키는 단계를 더 포함하고, 상기 치유 논리는 상기 치유자를 호출함으로써 상기 대체 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  5. 제 4 항에 있어서,
    상기 치유자는 웹 서비스 자체인 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  6. 제 4 항에 있어서,
    상기 치유자가 호출 실패한 기본 웹 서비스와 호출 실패한 시간을 기록하는 단계를 더 포함하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 대체 웹 서비스는 치유 논리가 상기 대체 웹 서비스를 호출하는 것에 기초하여, 다수의 호출 수준들로 분할되는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 방법.
  8. 적어도 하나의 기본 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치에 있어서,
    상기 기본 웹 서비스에 대해서 독립적이고, 해당 기본 웹 서비스의 적어도 하나의 기능을 구현하는 적어도 하나의 대체 웹 서비스를 상기 기본 웹 서비스에 제공하기 위한 대체 웹 서비스 저장소와,
    상기 기본 웹 서비스의 호출을 활성화 시키는 단계들을 식별하기 위하여, 상기 복합 웹 서비스 프로세스의 모델 정의를 구문해석하기 위한 모델 구문해석 수단과,
    상기 복합 웹 서비스 프로세스의 모델 정의로부터 식별된 상기 기본 웹 서비스의 호출을 활성화시키는 상기 단계들 다음에, 치유 논리들을 삽입하기 위한 치유 논리 삽입수단을 포함하고,
    상기 복합 웹 서비스 프로세스의 실행 동안에, 상기 치유 논리는 상기 기본 웹 서비스의 이전 호출이 실패했는지를 검출하고, 호출 실패가 검출된 경우, 상기 치유 논리는 실패되어 호출될 상기 기본 웹 서비스에 대응하는 상기 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출하는
    복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  9. 제 8 항에 있어서,
    상기 치유 논리를 발생시키기 위한 치유 논리 발생수단을 더 포함하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  10. 제 8 항에 있어서,
    상기 치유 논리는 상기 기본 웹 서비스로부터 응답을 얻었는지의 여부에 따라서 상기 기본 웹 서비스의 호출이 실패했는지를 판정하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  11. 제 8 항에 있어서,
    상기 대체 웹 서비스 저장소와 통신하고 상기 대체 웹 서비스 저장소의 대체 서비스를 호출하는 치유자를 발생시키기 위한 치유자 발생수단을 더 포함하고, 상기 치유 논리는 상기 치유자를 호출함으로써 상기 대체 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  12. 제 11 항에 있어서,
    상기 치유자 발생수단은 발생된 치유자를 웹 서비스 자체로 만들도록 구성되는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  13. 제 8 항에 있어서,
    상기 대체 웹 서비스 저장소에서 제공되는 대체 웹 서비스는 상기 치유 논리가 상기 대체 웹 서비스를 호출하는 것에 기초하여, 다수의 호출 수준들로 분할되는 복합 웹 서비스 프로세스를 처리하기 위한 자기-치유 장치.
  14. 적어도 하나의 기본 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 실행 하기 위한 장치에 있어서,
    상기 장치는, 상기 기본 웹 서비스에 독립적이고, 대응 기본 웹 서비스의 적어도 하나의 기능을 실행하는 적어도 하나의 대체 웹 서비스가 상기 기본 웹 서비스에 제공되는, 대체 웹 서비스 저장소와 함께 사용되며,
    상기 복합 웹 서비스 프로세스에 따라서 상기 장치가 상기 기본 웹 서비스의 호출을 실행한 후에, 상기 호출이 성공적인지를 판정하기 위한 것으로서, 호출 실패로 판정된 경우, 성공적으로 호출되지 않았던 상기 기본 웹 서비스에 대응하는 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출하는 자기-치유 요소를 포함하는
    복합 웹 서비스 프로세스를 실행하기 위한 장치.
  15. 적어도 하나의 기본 웹 서비스를 호출하는 복합 웹 서비스 프로세스를 실행하기 위한 방법에 있어서,
    상기 기본 웹 서비스의 호출을 실행한 후에, 상기 호출이 성공적인지를 판정하는 단계와,
    호출 실패로 판정된 경우, 성공적으로 호출되지 않았던 상기 기본 웹 서비스에 대응하는 대체 웹 서비스를 상기 대체 웹 서비스 저장소로부터 호출하는 단계를 포함하고,
    상기 대체 웹 서비스 저장소에서, 상기 기본 웹 서비스에는 상기 기본 웹 서 비스에 독립적이고, 대응 기본 웹 서비스의 적어도 하나의 기능을 구현하는 적어도 하나의 대체 웹 서비스가 제공되는
    복합 웹 서비스 프로세스를 실행하기 위한 방법.
  16. 제 15 항에 있어서,
    상기 대체 웹 서비스 저장소에 제공되는 상기 대체 웹 서비스들은 상기 대체 웹 서비스가 호출되는 것에 기초하여, 다수의 호출 수준들로 분할되는 복합 웹 서비스 프로세스를 실행하기 위한 방법.
  17. 제 15 항에 있어서,
    상기 방법은 상기 복합 웹 서비스 프로세스를 실행하는 프로세스 엔진에 의하여 자동적으로 실행되는 것을 특징으로 하는 복합 웹 서비스 프로세스를 실행하기 위한 방법.
  18. 제 15 항에 있어서,
    상기 방법은 상기 복합 웹 서비스 프로세스의 일부인 복합 웹 서비스 프로세스를 실행하는 방법.
KR1020067017491A 2004-03-12 2005-03-10 복합 웹 서비스를 자기-치유하기 위한 장치 및 방법 KR100951093B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2004100396429 2004-03-12
CN200410039642.9A CN1668014A (zh) 2004-03-12 2004-03-12 自愈合复合网络服务方法和装置

Publications (2)

Publication Number Publication Date
KR20070001981A true KR20070001981A (ko) 2007-01-04
KR100951093B1 KR100951093B1 (ko) 2010-04-07

Family

ID=34961236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067017491A KR100951093B1 (ko) 2004-03-12 2005-03-10 복합 웹 서비스를 자기-치유하기 위한 장치 및 방법

Country Status (8)

Country Link
EP (1) EP1738308A1 (ko)
JP (1) JP4493692B2 (ko)
KR (1) KR100951093B1 (ko)
CN (1) CN1668014A (ko)
BR (1) BRPI0508608A (ko)
CA (1) CA2555697A1 (ko)
IL (1) IL177794A0 (ko)
WO (1) WO2005091186A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101600216B (zh) * 2009-06-26 2013-01-02 北京邮电大学 一种无线接入网络的分布式自愈方法和系统
CN104601696B (zh) * 2015-01-13 2018-05-15 北京京东尚科信息技术有限公司 服务处理方法、服务调用系统、装置和系统
US10884864B2 (en) 2018-11-29 2021-01-05 International Business Machines Corporation Autonomous self-healing stateless microservice nodes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330689B1 (en) 1998-04-23 2001-12-11 Microsoft Corporation Server architecture with detection and recovery of failed out-of-process application
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
JP2002222176A (ja) * 2001-01-25 2002-08-09 Nippon Telegr & Teleph Corp <Ntt> サーバ・ベースド・コンピューティングモデルにおけるアプリケーションサーバ計算機障害自動復旧装置及び方法
JP3781636B2 (ja) * 2001-05-18 2006-05-31 Necフィールディング株式会社 受付システムおよび受付方法
JP2003022258A (ja) * 2001-07-05 2003-01-24 Mitsubishi Research Institute Inc サーバーのバックアップシステム
EP1461679A4 (en) 2001-11-12 2006-01-18 Worldcom Inc SYSTEM AND METHOD FOR THE FLUID IMPLEMENTATION OF MICRO-PAYMENTS RELATING TO CONSUMABLE SERVICES
JP2003281007A (ja) * 2002-03-20 2003-10-03 Fujitsu Ltd 動的構成制御装置および動的構成制御方法
JP2004021873A (ja) * 2002-06-20 2004-01-22 Hitachi Ltd インターネットシステム監視装置
JP2004030360A (ja) * 2002-06-27 2004-01-29 Japan Telecom Co Ltd Webサービスの提供システムおよび提供支援システム

Also Published As

Publication number Publication date
CA2555697A1 (en) 2005-09-29
IL177794A0 (en) 2006-12-31
CN1668014A (zh) 2005-09-14
WO2005091186A8 (en) 2006-10-26
JP4493692B2 (ja) 2010-06-30
BRPI0508608A (pt) 2007-12-18
KR100951093B1 (ko) 2010-04-07
JP2007529067A (ja) 2007-10-18
WO2005091186A2 (en) 2005-09-29
EP1738308A1 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
US8306996B2 (en) Processing model-based commands for distributed applications
US8478616B2 (en) Business application development and execution environment
US6847970B2 (en) Methods and apparatus for managing dependencies in distributed systems
US8823536B2 (en) Automated recovery and escalation in complex distributed applications
Zeng et al. Policy-driven exception-management for composite web services
van der Aalst et al. Choreography conformance checking: An approach based on bpel and petri nets
US20050267765A1 (en) Apparatus and method for policy-driven business process exception handling
Luo et al. Exception handling for conflict resolution in cross-organizational workflows
KR100951093B1 (ko) 복합 웹 서비스를 자기-치유하기 위한 장치 및 방법
Elmagarmid et al. Workflow management: State of the art versus state of the products
Fugini et al. Recovery of faulty web applications through service discovery
US20070282649A1 (en) Method, system and computer program product for improving information technology service resiliency
WO2000074193A9 (en) User support system and method
CN102073505A (zh) 面向服务组装的声明式事务集成方法和系统
Boumhamdi et al. A flexible approach to compose web services in dynamic environment
Ezenwoye et al. A Proxy-Based Approach to Enhancing the Autonomic Behavior in Composite Services.
Danilecki et al. ReServE service: An approach to increase reliability in service oriented systems
JP2007529067A6 (ja) 自己修復複合ウェブ・サービスのための方法及び装置
Ardagna et al. Faults and recovery actions for self-healing web services
Alonso et al. Processes in electronic commerce
Ermagan et al. A fault tolerance approach for enterprise applications
Alhosban et al. Assessing fault occurrence likelihood for service-oriented systems
Rajaraman et al. Determining software inter-dependency patterns for integration testing by applying machine learning on logs and telemetry data
Xiao et al. A process history capture system for analysis of data dependencies in concurrent process execution
Xiao et al. The DeltaGrid abstract execution model: service composition and process interference handling

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
LAPS Lapse due to unpaid annual fee