KR100561632B1 - Bpml에서 bpel로의 변환 방법 - Google Patents

Bpml에서 bpel로의 변환 방법 Download PDF

Info

Publication number
KR100561632B1
KR100561632B1 KR1020040042747A KR20040042747A KR100561632B1 KR 100561632 B1 KR100561632 B1 KR 100561632B1 KR 1020040042747 A KR1020040042747 A KR 1020040042747A KR 20040042747 A KR20040042747 A KR 20040042747A KR 100561632 B1 KR100561632 B1 KR 100561632B1
Authority
KR
South Korea
Prior art keywords
bpel
bpml
creating
dependent
context
Prior art date
Application number
KR1020040042747A
Other languages
English (en)
Other versions
KR20050117437A (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 한국전자통신연구원
Priority to KR1020040042747A priority Critical patent/KR100561632B1/ko
Publication of KR20050117437A publication Critical patent/KR20050117437A/ko
Application granted granted Critical
Publication of KR100561632B1 publication Critical patent/KR100561632B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 BPML(Business Process Modeling Language)에서 BPEL(Business Process Execution Language)로의 변환 방법에 관한 것임.
2. 발명이 해결하고자 하는 기술적 과제
본 발명은 BPML을 BPEL로 변환시킴으로써, BPEL을 지원하는 시스템에서 BPML로 기술된 웹 서비스의 컴포지션의 참조를 가능하게 하기 위한 BPML에서 BPEL로의 변환 방법을 제공하는데 그 목적이 있음.
또한, 본 발명은 BPEL을 지원하는 시스템에서 BPML을 따르는 비즈니스 프로세스 기술 문서를 산출하기 위한 BPML에서 BPEL로의 변환 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은 BPML의 단순 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단순 액티버티 처리 단계, BPML의 복합 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 복합 액티버티 처리 단계, BPML의 프로세스 호출과 관련된 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 특수 복합 액티버티 처리 단계, BPML의 동기화를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 동기화 처리 단계 및 BPML의 액티버티에 대한 예외 처리 및 프로세스 내부의 실행 환경을 기술하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 컨택스트 처리 단계를 포함함.
4. 본 발명의 중요한 용도
본 발명은 웹 서비스를 관리하는데 이용될 수 있음.
변환, 비즈니스 프로세스, BPEL, BPML

Description

BPML에서 BPEL로의 변환 방법{Method For Transforming From BPML To BPEL For The Excutable Business Process}
도 1은 본 발명에 따른 BPML(Business Process Modeling Language)을 BPEL(Business Process Execution Language)로 변환시키는 변환기의 구성도,
도 2는 도 1의 단순 액티버티 처리부가 BPEL의 엘리먼트를 생성시키는 흐름도,
도 3a 내지 도 3c는 도 1의 복합 액티버티 처리부가 BPEL의 대응되는 엘리먼트를 생성하는 흐름도,
도 4는 도 1의 특수 복합 액티버티 처리부가 프로세스와 관련된 특수 복합 액티버티를 수행하는 엘리먼트를 처리하는 흐름도,
도 5는 도 1의 동기화 엘리먼트 처리부가 시그널을 이용한 동기화와 관련된 엘리먼트를 처리하는 흐름도,
도 6a 및 도 6b는 도 1의 컨텍스트 처리부가 액티버티들의 실행 환경이 기술되어 있는 엘리먼트를 처리하는 흐름도이다.
* 도면의 주요 참조부호에 대한 설명 *
110 : BPML-to-BPEL 변환기 120 : 단순 액티버티 처리부
130 : 복합 액티버티 처리부 140 : 특수 복합 액티버티 처리부
150 : 동기화 처리부 160 : 컨텍스트 처리부
본 발명은 BPML의 실행 가능한 프로세스를 대응되는 BPEL 프로세스로 변환하는 방법에 관한 것이다.
웹 서비스(Web Services)란 벤더 중립적인 초경량의 통신 프로토콜을 통해 네트워크상의 다른 시스템으로부터의 XML(Extensible Markup Language) 포맷의 요청을 받는 모듈형 애플리케이션이다. 정의에 의하면 웹 서비스를 요청하는 주체는 네트워크 상의 다른 시스템이므로 웹 서비스는 새로운 분산 컴퓨팅 기술이다. 사용되는 프로토콜의 초경량화를 위해서 보안, 트랙젝션 관리 등은 다른 확장 스펙에서 처리하도록 한다.
그리고 벤더 중립적으로 개방형 프로토콜을 사용하여 웹 서비스 스택을 구현한 시스템이라면 운영 체제에 상관없이 상호 운영성을 가지게 된다. 현재 웹 서비스를 위한 기본 표준에는 웹 서비스가 제공하는 서비스가 무엇인지, 그 웹 서비스에 어떻게 접근하는지, 예상되는 응답의 타입이 무엇인지를 기술하는 WSDL(Web Service Description Language), XML 기반의 메시징 프로토콜인 SOAP(Simple Object Access Protocol), 웹 서비스의 등록과 검색을 위한 디렉토리 서비스인 UDDI(Universal Description, Discovery and Integration)가 있다.
네트워크에 접근 가능하고, XML을 인식하는 모든 애플리케이션은 이 표준들을 사용함으로써 프로그래밍 언어나 운영체제에 관계없이 웹 서비스를 호출할 수 있는 것이다.
따라서, 기존의 레거시 애플리케이션(Legacy Application)들은 웹 서비스로 등록되는 절차를 거친 뒤에 네트워크를 통해 다른 애플리케이션에서 호출하여 사용할 수 있게 되었다. 이런 특성으로 인해 웹 서비스가 분산 환경에서의 통합을 위한 획기적인 솔루션으로 떠오르고 있다. 특히 EAI(Enterprise Application Integration)나 B2B(Business to Business) 애플리케이션, 인트라넷(Intranet)의 컴포넌트(Component) 재사용에 효과적으로 사용될 것으로 기대되고 있다.
기본 표준인 WSDL, SOAP, UDDI를 통해서는 하나의 웹 서비스에 의한 서비스만 가능하다. 그러나 실제 웹 서비스를 이용해서 제공하고자 하는 서비스는 훨씬 복잡하다.
예를 들어, 인터넷에서 상품 구매하는 비즈니스 프로세스를 웹 서비스로 구현하기 위해서는 소비자가 해당 상품에 대한 구매를 요청하는 웹 서비스, 요청한 상품의 재고를 조사하는 웹 서비스, 재고가 있는 경우 판매하겠다는 의사를 전달하는 웹 서비스, 재고가 없는 경우 품절임을 알리는 웹 서비스, 소비자의 입금을 확인하는 웹 서비스, 택배 회상 물품 운송을 요청하는 웹 서비스 등 여러 개의 웹 서비스가 비즈니스 로직에 따라 연결되고 조직화되어야 한다.
이러한 비즈니스 프로세스를 웹 서비스 컴포지션으로 표현하기 위한 W3C사의 WSCI(Web Service Choreography Interface)와, IBM사와 마이크로소프트사의 BPEL4WS(Business Process Execution Language for Web Service), BPMI.org(Business Process Management Initiative)의 BPML(Business Process Modeling Language)등이 등장하였다.
이와 같이 비즈니스 프로세스란 복수개의 비즈니스 액티버티들의 코리어그래피(choreography)한 시퀀스를 말한다. 비즈니스 프로세스는 크게 공중 비즈니스 프로세스(public business process)와 사설 비즈니스 프로세스(private business process)로 나뉜다. 공중 비즈니스 프로세스는 B2B 통합 도메인에서 참여자들간에 공유되는 협업적 프로세스이고, 사설 비즈니스 프로세스는 EAI에서 한 기업 내부의 시스템에 사용되는 내부 프로세스이다.
상기에서 언급한 WSCI, BPEL4WS, BPML 중에서, 한 기업의 실행 가능한 내부 프로세스를 기술하는 웹 서비스 컴포지션 표준에는 BPEL4WS와 BPML이 있다.
BPML은 비즈니스 프로세스를 모델링하기 위한 방법으로 BPMI.org에 의해 개발된 XML 기반의 메타 언어이다. BPMI.org에는 Intalio, SAP, Sun 등의 벤더들이 참여하고 있다. BPML은 트랜잭션을 포함하는 유한 상태 기계(finite-state machine)의 개념에 기반을 둔 추상화된 실행 모델을 제공한다. 협업적 비즈니스 프로세스를 지원하는 WSCI와는 상호보완 관계에 있다.
BPEL4WS(이하 BPEL)는 2002년에 마이크로소프트사의 XLANG과 IBM사의 WSFL를 통합하여 만든 웹 오케스트레이션(orchestration)언어이다. 오케스트레이션은 메시 지 단계에서 웹 서비스가 상호 작용하는 방법을 기술하는데, 비즈니스 로직과 상호 작용의 실행 순서를 포함한다.
즉, BPEL의 비즈니스 프로세스는 외부로부터 서비스 제공을 요청하는 메시지를 받았을 때, 외부 웹 서비스를 호출하여 추가 데이터를 제공받아, 서비스를 요청한 측에 응답하는 비즈니스 절차를 기술한다. 복잡한 비즈니스 로직이 바로 이 BPEL 비즈니스 프로세스에서 웹 서비스의 컴포지션으로 기술된다.
IBM, 마이크로소프트 및 BEA는 표준 채택을 위해 2003년 4월에 BPEL 스펙을 OASIS에 제출하였고, OASIS에서는 스펙을 발전시키기 위해 OASIS BPEL 기술 위원회를 구성하였다.
웹 서비스 컴포지션을 위한 표준은 크게 WSCI와 BPML의 연합과 BPEL로 양분된 상태로, 현재 웹 서비스와 관련된 IT 업계의 동향은 다음과 같다.
각 표준을 지원하는 메이저 벤더들이 서로 다른 표준화 단체를 통해 표준화 작업에 박차를 가하고 있다. 또한 이를 토대로 각 표준을 따르는 제품 구현도 활발히 이루어지고 있다.
인탈리오(Intalio)와 버질 테크놀러지(Vergil Technologies)는 WSCI와 연계된 BPML을 구현한 제품을 내놓았고, 썬 마이크로시스템(Sun Microsystems)는 WSCI를 지원하는 Sun ONE WSCI 에디터를 제공하고 있다.
반면, IBM에서는 BPEL을 위한 에디터 및 BPEL 엔진인 BPWS4J를 제공하고, 바인드 시스템(BindSystems)에서는 BPEL 모델링 및 편집 도구를 제공하며, 콜락사(Collaxa)에서는 BPEL을 위한 실행 플랫폼을 제공한다. 그리고 마이크로소프트와 BEA는 향후에 BPEL 기반 제품을 생산할 것이라고 공표하였다. 이처럼 산업계에서도 웹 서비스 제품군 시장에서 우위를 차지하기 위한 두 스펙간의 경쟁은 계속 되고 있으면, 당분간 웹 서비스 컴포지션을 위한 표준 스펙은 WSCI와 BPEL이 독립적으로 존재하며 기술적으로는 상보적으로, 산업적으로는 경쟁적으로 발전되리라 예상된다.
이와 같이, BPML과 BPEL이 각각 서로 다른 표준화 단체인 BPMI.org와 OASIS에서, 서로 다른 메이저 벤더들의 지원을 받으며 독립적으로 발전되고 있는 상황에서 실행 가능한 비즈니스 프로세스를 위한 BPML과 BPEL간의 상호 변환 기술이 요구되어진다.
본 발명은 상기와 같은 요구에 부응하기 위해 창안된 것으로서, 본 발명은 BPML을 BPEL로 변환시킴으로써, BPEL을 지원하는 시스템에서 BPML로 기술된 웹 서비스의 컴포지션의 참조를 가능하게 하기 위한 BPML에서 BPEL로의 변환 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 BPEL을 지원하는 시스템에서 BPML을 따르는 비즈니스 프로세스 기술 문서를 산출하기 위한 BPML에서 BPEL로의 변환 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명은 BPML의 단순 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단순 액티버티 처리 단계, BPML의 복합 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 복합 액티버티 처리 단계, BPML의 프로세스 호출과 관련된 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 특수 복합 액티버티 처리 단계, BPML의 동기화를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 동기화 처리 단계 및 BPML의 액티버티에 대한 예외 처리 및 프로세스 내부의 실행 환경을 기술하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 컨택스트 처리 단계를 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
이하 설명에 있어서 엘리먼트와 애트리뷰트는 XML 문서와 같은 마크업(Markup) 언어 문서를 구성하는 구성요소이다. 엘리먼트는 태그를 사용하여 표현되고, 애트리뷰트는 엘리먼트에 대한 세부 속성을 기술하기 위해서 사용된다.
또한, 액티버티는 하나의 특정한 기능을 수행하는 비즈니스 프로세스 구성 요소이다. 통상적으로 액티버티는 원자 단위의 액티버티인 단순 액티버티와 복수 개의 액티버티들로 구성된 복합 액티버티로 구분할 수 있다.
도 1은 본 발명에 따른 BPML을 BPEL로 변환시키는 변환기의 구성도이다.
도시된 바와 같이, BPML 문서로 구성된 프로세스가 BPML-to-BPEL 변환기(110)에 의해 BPEL 프로세스로 변환된다.
또한, BPML-to-BPEL 변환기(110)는 BPML의 단순 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단순 액티버티 처리부(120), BPML의 복합 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 복합 액티버티 처리부(130), BPML의 프로세스 호출과 관련된 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 특수 복합 액티버티 처리부(140), BPML의 동기화를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 동기화 처리부(150) 및 BPML의 액티버티에 대한 예외 처리 및 프로세스 내부의 실행 환경을 기술하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 컨택스트 처리부(160)를 포함한다.
단순 액티버티 처리부(120)는 BPML의 단순 액티버티를 수행하는 각 엘리먼트의 종속 엘리먼트 또는 애트리뷰트에 근거하여 대응되는 BPEL의 엘리먼트를 생성한 다.
또한, 단순 액티버티 처리부(120)에서 처리되는 엘리먼트가 종속 엘리먼트로 프로세스를 호출하는 엘리먼트를 포함할 때, 단순 액티버티 처리부(120)는 특수 복합 액티버티 처리부(140)와 연동하여 BPEL의 대응되는 엘리먼트를 생성한다.
복합 액티버티 처리부(130)는 복합 액티버티를 수행하는 엘리먼트가 액티버티의 실행 환경을 기술한 "context" 엘리먼트를 종속 엘리먼트로 포함할 때와 포함하지 않을 때를 고려하여, BPEL의 대응되는 엘리먼트를 생성한다.
상기 여러 액티버티를 구조화시키는 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함할 경우, 복합 액티버티 처리부(140)는 "context" 엘리먼트를 처리하는 컨텍스트 처리부(160)와 연동하여 대응되는 BPEL의 엘리먼트를 생성한다.
한편, 액티버티들이 병렬적으로 수행 될 때 각 액티버티간의 순서를 지정하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하기 위해 동기화 처리부(150)가 실행된다.
BPML-to-BPEL 변환기(110)의 각 구성에서 엘리먼트를 처리하는 과정은 흐름도와 함께 설명한다.
도 2는 본 발명에 따른 BPML의 단순 액티버티 처리부가 BPML의 단순 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 흐름도이다.
도시된 바와 같이, 단순 액티버티 처리부(120)는 단순 액티버티를 수행하는 BPML의 엘리먼트 "action", "assign", "compensate", "delay", "empty", "fault"에 대응되는 BPEL의 엘리먼트를 생성한다.
단순 액티버티 처리부(120)는 단순 액티버티를 수행하는 BPML의 엘리먼트가 "action" 엘리먼트인지 판단하여(200), "action" 엘리먼트이면 종속 엘리먼트로 "call" 엘리먼트를 포함하는지를 판단한다(205).
상기 판단 결과(205), 상기 "action" 엘리먼트가 종속 엘리먼트로 "call" 엘리먼트를 포함하면, 단순 액티버티 처리부(120)는 상기 "action" 엘리먼트의 "portType"과 "operation" 애트리뷰트 값을 가지는 BPEL의 "receive" 엘리먼트와 "reply" 엘리먼트를 생성한다(210, 220).
또한, 상기 "receive" 엘리먼트와 "reply" 엘리먼트 생성 과정 중에 프로세스를 호출하는 특수 복합 액티버티를 수행하는 특수 복합 액티버티 처리부(140)가 상기 "call" 엘리먼트를 처리한다.
특수 복합 액티버티 처리부(140)가 상기 "call" 엘리먼트를 처리하는 과정은 도 4와 함께 후술한다.
만약, 상기 판단 결과(205), 상기 "action" 엘리먼트가 종속 엘리먼트로 "call" 엘리먼트를 포함하지 않으면, 단순 액티버티 처리부(120)는 상기 "action" 엘리먼트에 대응되는 BPEL의 "invoke" 엘리먼트를 생성한다(225).
한편, 상기 판단 결과(200), BPML의 엘리먼트가 "action" 엘리먼트가 아니면 단순 액티버티 처리부(120)는 BPML의 엘리먼트가 "assign" 엘리먼트리인지 판단한다(230).
상기 판단 결과(230), 상기 BPML의 엘리먼트가 "assign" 엘리먼트이면, 단순 액티버티 처리부(120)는 대응되는 BPEL의 "assign" 엘리먼트를 생성한다(235). 또 한 단순 액티버티 처리부(120)는 상기 BPEL의 "assign" 엘리먼트의 종속 엘리먼트로 "copy" 엘리먼트를 생성하고(240), 상기 "copy" 엘리먼트의 종속 엘리먼트로 "from" 엘리먼트와 "to" 엘리먼트를 생성한다(245, 250).
이 때, 단순 액티버티 처리부(120)는 상기 BPML의 "assign" 엘리먼트의 종속 엘리먼트인 "source" 또는 "value" 엘리먼트를 참조하여 상기 "from" 엘리먼트의 "variable" 또는 "expression" 애트리뷰트의 값을 설정한다.
또한, 단순 액티버티 처리부(120)는 상기 BPML의 "assign" 엘리먼트의 "property" 애트리뷰트의 값을 참조하여 상기 생성된 "to" 엘리먼트의 "variable" 애트리뷰트의 값을 설정한다.
만약 상기 판단 결과(230), BPML의 엘리먼트가 "assign" 엘리먼트가 아니면, 단순 액티버티 처리부(120)는 BPML의 엘리먼트가 "compensate" 엘리먼트인지 판단한다(255).
상기 판단 결과(255), BPML의 엘리먼트가 "compensate" 엘리먼트이면 단순 액티버티 처리부(120)는 대응되는 BPEL의 "compensate" 엘리먼트를 생성한다(260).
이 때, 단순 액티버티 처리부(120)는 상기 BPML의 "compensate" 엘리먼트의 "process" 애트리뷰트의 값을 참조하여 상기 BPEL의 "compensate" 엘리먼트의 "scope" 애트리뷰트의 값을 설정한다.
만약 상기 판단 결과(255), BPML의 엘리먼트가 "compensate" 엘리먼트가 아니면, 단순 액티버티 처리부(120)는 BPML의 엘리먼트가 "delay" 엘리먼트인지 판단한다(265).
상기 판단 결과(265), BPML의 엘리먼트가 "delay" 엘리먼트이면, 단순 액티버티 처리부(120)는 대응되는 BPEL의 "wait" 엘리먼트를 생성한다(270).
이 때, 상기 "delay" 엘리먼트의 "type" 애트리뷰트 값이 "duration"이면 단순 액티버티 처리부(120)는 "for" 애트리뷰트를 가지는 "wait" 엘리먼트를 생성하고, 상기 "delay" 엘리먼트의 "type" 애트리뷰트 값이 "instant"이면 "until" 애트리뷰트를 가지는 "wait" 엘리먼트를 생성한다. 그리고 "for" 또는 "until" 애트리뷰트는 그에 해당하는 숫자가 와야 하므로 단순 액티버티 처리부(120)는 상기 "delay" 엘리먼트의 "property" 애트리뷰트의 값을 참조하여 상기 "for" 또는 "until" 애트리뷰트 값을 설정한다.
한편 상기 판단 결과(265), BPML의 엘리먼트가 "delay" 엘리먼트가 아니면, 단순 액티버티 처리부(120)는 BPML의 엘리먼트가 "empty" 엘리먼트인지 판단한다(275).
상기 판단 결과(275), BPML의 엘리먼트가 "empty" 엘리먼트이면, 단순 액티버티 처리부(120)는 대응되는 BPEL의 "empty" 엘리먼트를 생성한다(280).
만약 상기 판단 결과(275), BPML의 엘리먼트가 "empty" 엘리먼트가 아니면, 단순 액티버티 처리부(120)는 BPML의 엘리먼트가 "fault" 엘리먼트인지 판단한다(285).
상기 판단 결과(285), BPML의 엘리먼트가 "fault" 엘리먼트이면, 단순 액티버티 처리부(120)는 대응되는 BPEL의 "throw" 엘리먼트를 생성한다(290).
이 때, 단순 액티버티 처리부(120)는 상기 BPML의 "fault" 엘리먼트의 "code" 애트리뷰트의 값을 참조하여 상기 BPEL의 "throw" 엘리먼트의 "faultName" 애트리뷰트 값을 설정한다.
이와 같은 과정을 거쳐서 단순 액티버티 처리부(110)는 단순 액티버티를 수행하는 BPML의 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성한다.
도 3a 내지 도 3c는 본 발명에 따른 BPML의 복합 액티버티 처리부에서 BPEL의 복합 액티버티를 수행하는 엘리먼트가 생성되는 흐름도이다.
도 3a 내지 도 3c에 도시된 바와 같이, 복합 액티버티 처리부(130)는 복합 액티버티를 수행하는 BPML의 엘리먼트 "all", "choice", "foreach", "sequence", "switch", "until" 또는 "while"에 대응되는 BPEL의 엘리먼트를 생성한다.
BPML의 복합 액티버티는 상기 복합 액티버티 내부의 액티버티를 수행하는 실행 환경을 "context" 엘리먼트에 기술할 수 있다. 따라서 상기 "context" 엘리먼트를 종속 엘리먼트로 가질 수 있는 "all", "sequence", "while", "until" 또는 "foreach" 엘리먼트가 종속 엘리먼트로 상기 "context" 엘리먼트를 가질 경우, 복합 액티버티 처리부(130)는 상기 "context" 엘리먼트를 처리하는 컨텍스트 처리부(160)와 연동하여 상기 BPML의 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성한다.
먼저, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "all" 엘리먼트인지 판단하여(300), BPML의 엘리먼트가 "all" 엘리먼트이면, 복합 액티버티 처리부(130)는 상기 "all" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단한다(302).
상기 판단 결과(302), 상기 "all" 엘리먼트가 상기 "context" 엘리먼트를 종 속 엘리먼트로 포함하면, 복합 액티버티 처리부(130)는 먼저 "scope" 엘리먼트를 생성한다. 또한, 상기 "scope" 엘리먼트의 종속 엘리먼트로 "context" 엘리먼트에 기술된 실행 환경에 대응되는 BPEL의 엘리먼트를 생성하기 위해 컨텍스트 처리부(160)가 실행한다(368).
이 후, 복합 액티버티 처리부(130)는 상기 "scope" 엘리먼트의 종속 엘리먼트로 상기 "all" 엘리먼트에 대응되는 BPEL의 "flow" 엘리먼트를 생성한다(304).
만약 상기 판단 결과(302), 상기 "all" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하지 않으면, 상기 "all" 엘리먼트에 대응되는 BPEL의 "flow" 엘리먼트는 복합 액티버티 처리부(130)에 의해서만 생성된다(306).
또한, 상기 판단 결과(300), BPML의 엘리먼트가 "all" 엘리먼트가 아니면, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "sequence" 엘리먼트인지 판단하여(308), BPML의 엘리먼트가 "sequence" 엘리먼트이면, 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단한다(310).
상기 판단 결과(310), 상기 BPML의 "sequence" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하면, 상기 "368" 과정이 반복된다. 이 후, 복합 액티버티 처리부(130)는 상기 BPML의 "sequence" 엘리먼트에 대응되는 BPEL의 "sequence" 엘리먼트를 생성한다(312).
또한, 상기 판단 결과(302), 상기 BPML의 "sequence" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하지 않으면, 상기 BPML의 "sequence" 엘리먼트에 대응되는 BPEL의 "sequence" 엘리먼트는 복합 액티버티 처리부(130)에 의해서만 생성된다(314).
한편, 상기 판단 결과(308), BPML의 엘리먼트가 "sequence" 엘리먼트가 아니면, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "while" 엘리먼트인지 판단하여(316), BPML의 엘리먼트가 "while" 엘리먼트이면, 복합 액티버티 처리부(130)는 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단한다(318).
상기 판단 결과(318), 상기 BPML의 "while" 엘리먼트가 "context" 엘리먼트를 종속 엘리먼트로 포함하면, 상기 "368" 과정이 반복된다. 이 후, 복합 액티버티 처리부(130)는 상기 BPML의 "while" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성한다(320).
만약 상기 판단 결과(318), 상기 BPML의 "while" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하지 않으면, 상기 BPML의 "while" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트는 복합 액티버티 처리부(130)에 의해서만 생성된다(322).
이 때, 복합 액티버티 처리부(130)는 상기 BPML의 "while" 엘리먼트의 종속 엘리먼트인 "condition" 엘리먼트의 텍스트를 참조하여 상기 BPEL의 "while" 엘리먼트의 조건을 기술하는 "condition" 애트리뷰트의 값을 설정한다.
또한, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "until" 또는 "foreach" 엘리먼트인 경우, BPEL의 대응되는 엘리먼트가 존재하지 않으므로 상기 "until" 엘리먼트와 "foreach" 엘리먼트에 대하여 약간 변형된 BPEL의 "while" 엘리먼트를 생성한다.
상기 판단 결과(316), BPML의 엘리먼트가 "while"이 아니면 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "until" 엘리먼트인지 판단하여(324), BPML의 엘리먼트가 "until" 엘리먼트이면 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단한다(326).
상기 판단 결과(326), 상기 "until" 엘리먼트가 "context" 엘리먼트를 종속 엘리먼트로 포함하면, 상기 "368" 과정이 반복된다. 이 후, 복합 액티버티 처리부(130)는 상기 "until" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는데, 먼저 엘리먼트의 순차적 실행을 보장하는 "sequence" 엘리먼트를 생성하고, 그 종속 엘리먼트로 상기 "until" 엘리먼트 내부의 엘리먼트에 해당하는 BPEL의 엘리먼트를 생성한 후, 상기 "until" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성한다(328).
한편, 상기 판단 결과(326), 상기 "until" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하지 않으면 바로 상기 "328" 과정이 수행된다.
또한, 상기 판단 결과(324), BPML의 엘리먼트가 "until"이 아니면, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "foreach" 엘리먼트인지 판단하여(332), BPML의 엘리먼트가 "foreach" 엘리먼트인 경우, 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단한다(334).
상기 판단 결과(334), 상기 "until" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하면, 상기 "368" 과정이 반복된다. 이 후, 복합 액티버티 처리부(130)는 상기 "foreach" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성 하는데, 상기 생성된 BPEL의 "while" 엘리먼트가 BPML의 "foreach" 엘리먼트로 부터 생성된 것임을 알리는 주석도 함께 생성한다(336).
만약, 상기 판단 결과(334), 상기 "until" 엘리먼트가 상기 "context" 엘리먼트를 종속 엘리먼트로 포함하지 않으면 바로 상기 "336" 과정이 수행된다.
또한, 상기 판단 결과(332), BPML의 엘리먼트가 "foreach" 엘리먼트가 아니면 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "switch" 엘리먼트인지 판단하여(340), BPML의 엘리먼트가 "switch" 엘리먼트이면 상기 BPML의 "swith" 엘리먼트에 대응되는 BPEL의 "switch" 엘리먼트를 생성한다(342).
이 때, 복합 액티버티 처리부(130)는 상기 BPML의 "switch" 엘리먼트의 종속 엘리먼트가 "case" 또는 "default" 엘리먼트인지 판단하여(344), 상기 BPML의 "switch" 엘리먼트의 종속 엘리먼트가 "case" 엘리먼트이면 상기 BPEL의 "switch" 엘리먼트의 종속 엘리먼트로 "case" 엘리먼트를 생성한다(346).
또한, 상기 판단 결과(344), 상기 BPML의 "switch" 엘리먼트의 종속 엘리먼트가 "default" 엘리먼트이면 복합 액티버티 처리부(130)는 상기 BPEL의 "switch" 엘리먼트의 종속 엘리먼트로 "otherwise" 엘리먼트를 생성한다(350).
한편, 상기 판단 결과(340), BPML의 엘리먼트가 "switch" 엘리먼트가 아니면, 복합 액티버티 처리부(130)는 BPML의 엘리먼트가 "choice" 엘리먼트인지 판단하여(352), BPML의 엘리먼트가 "choice" 엘리먼트이면 상기 "choice" 엘리먼트에 대응되는 BPEL의 "pick" 엘리먼트를 생성한다(354).
이 때, 복합 액티버티 처리부(130)는 상기 "choice" 엘리먼트의 종속 엘리먼 트가 "action" , "delay" 또는 "synch" 엘리먼트인지 판단한다(356).
상기 판단 결과(356), 상기 BPML의 "choice" 엘리먼트의 종속 엘리먼트가 "action" 엘리먼트이면 복합 액티버티 처리부(130)는 상기 BPEL의 "pick" 엘리먼트의 종속 엘리먼트로 "onMessage" 엘리먼트를 생성한다(358).
또한, 상기 판단 결과(356), 상기 BPML의 "choice" 엘리먼트의 종속 엘리먼트가 "delay" 엘리먼트이면 복합 액티버티 처리부(130)는 상기 BPEL의 "pick" 엘리먼트의 종속 엘리먼트로 "onAlarm" 엘리먼트가 생성된다(362).
또한, 상기 판단 결과(356), 상기 BPML의 "choice" 엘리먼트의 종속 엘리먼트가 "synch" 엘리먼트이면 복합 액티버티 처리부(130)는 "synch" 엘리먼트에 대한 "signal" 이벤트가 생략되었음을 알리는 주석을 생성한다(360).
이는 BPEL의 "pick" 엘리먼트에서는 "signal" 이벤트를 지원하지 않기 때문이다.
또한, 상기 BPML의 "switch" 또는 "choice" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 가지지 않는 대신 그 종속 엘리먼트인 "case", "default", "action" 및 "delay" 엘리먼트가 "context" 엘리먼트를 가질 수 있다. 이 경우, 상기 "368" 과정을 반복한 후, 복합 액티버티 처리부(130)는 각 종속 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성한다.
도 4는 본 발명에 따른 특수 복합 액티버티 처리부에서 프로세스와 관련된 특수 복합 액티버티를 수행하는 엘리먼트 "call"과 "spawn"을 처리하는 흐름도이다.
도시된 바와 같이, 특수 복합 액티버티 처리부(140)는 BPML의 특수 복합 액티버티를 처리하는 엘리먼트가 "call" 또는 "spawn" 엘리먼트인지 판단한다(405).
상기 판단 결과(405), BPML의 엘리먼트가 "call" 또는 "spawn" 엘리먼트이면 특수 복합 액티버티 처리부(140)는 상기 "call" 또는 "spawn" 엘리먼트가 호출한 "process" 엘리먼트를 검색한다(410).
상기 검색 결과(410), 상기 "process" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단하여(415), 상기 "process" 엘리먼트가 종속 엘리먼트로 상기 "context" 엘리먼트를 포함하지 않으면, 상기 호출된 "process"의 정의에 나열된 액티버티들의 순차적 실행을 보장하는 "sequence" 엘리먼트를 생성하여 그 종속 엘리먼트로 상기 "process" 엘리먼트의 종속 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성한다(425).
한편, 상기 판단 결과(415), 상기 "process" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함하면, 먼저 "sequence" 엘리먼트를 생성하고, 상기 "sequence" 엘리먼트의 종속 엘리먼트로 "scope" 엘리먼트를 생성한다. 또한, 상기 생성된 "scope" 엘리먼트의 종속 엘리먼트로 "context" 엘리먼트에 기술된 실행 환경에 대응하는 내용을 컨텍스트 처리부(160)를 통해 생성한다(420). 이 후, 상기 "425" 과정이 반복된다.
도 5는 시그널을 이용한 동기화와 관련된 엘리먼트를 동기화 엘리먼트 처리부가 처리하는 흐름도이다.
BPML의 "context" 엘리먼트는 "signal" 이벤트를 포함하고, 이 "signal" 이 벤트는 "raise" 엘리먼트에 의해 발생되며, "synch" 엘리먼트에 의해 동기화 된다.
즉, "synch" 엘리먼트는 "raise" 엘리먼트에 의해 "signal" 이벤트가 발생될 때까지 기다린다. 따라서, "synch" 엘리먼트를 종속 엘리먼트로 포함하는 BPML의 엘리먼트는 "raise" 엘리먼트를 포함하는 BPML의 엘리먼트의 수행이 완료되어야 수행될 수 있다.
이는 BPEL에서 "link" 엘리먼트를 이용하여 "source" 엘리먼트와 "target" 엘리먼트로 실행 순서를 제어하는 메카니즘과 유사하다. BPEL에서는 "link" 엘리먼트를 정의하고 이 "link" 엘리먼트와 연관된 "target" 엘리먼트를 종속 엘리먼트로 가지는 엘리먼트는 상기 "link" 엘리먼트와 연관된 "source" 엘리먼트를 종속 엘리먼트로 가지는 엘리먼트의 수행이 완료해야 수행가능하다.
동기화 처리부(150)는 BPML의 엘리먼트가 "raise" 엘리먼트인지 판단하여(500), BPML의 엘리먼트가 "raise" 엘리먼트이면, BPEL의 "empty" 엘리먼트를 생성하고 그 종속 엘리먼트로 상기 "synch" 엘리먼트에 대응되는 BPEL의 "source" 엘리먼트를 생성한다(505).
또한, 상기 판단 결과(500), BPML의 엘리먼트가 "raise" 엘리먼트가 아니면, 동기화 처리부(150)는 BPML의 엘리먼트가 "synch" 엘리먼트인지 판단하여(510), BPML의 엘리먼트가 "synch" 엘리먼트이면, BPEL의 "empty" 엘리먼트를 생성하고 그 종속 엘리먼트로 상기 "synch" 엘리먼트에 대응되는 BPEL의 "target" 엘리먼트를 생성한다(515).
도 6a 및 도 6b는 본 발명에 따른 컨텍스트 처리부에서 액티버티들의 실행 환경이 기술되어 있는 "context" 엘리먼트를 처리하는 흐름도이다.
BPML에서는 액티버티들의 실행 환경을 "context" 엘리먼트에 기술하는데 이것은 BPEL의 "scope" 내부에 기술된 실행 환경과 유사하다. 따라서 컨텍스트 처리부(160)에 의해 처리되는 하기 "context" 엘리먼트의 실행 환경은 BPEL의 "scope" 엘리먼트의 종속 엘리먼트로 포함된다.
도시된 바와 같이, 컨텍스트 처리부(160)는 "context" 엘리먼트 내부에 기술된 엘리먼트가 "process" 엘리먼트인지 판단하여(600), "process" 엘리먼트인 경우, BPEL에 "process"의 개념이 존재하지 않으므로 "process" 엘리먼트가 존재했음을 알리는 주석 처리를 한다(605).
또한, 상기 판단 결과(600), "process" 엘리먼트가 아니면, 컨텍스트 처리부(160)는 "context" 엘리먼트 내부에 기술된 엘리먼트가 "property" 엘리먼트이지 판단하여(610), "property" 엘리먼트인 경우, "variables" 엘리먼트 내의 한 "variable" 엘리먼트를 생성한다(615).
예를 들어, BPML의 "property" 엘리먼트가 3개 존재하면, 컨텍스트 처리부(160)는 BPEL의 "variables" 엘리먼트를 생성하여, 종속 엘리먼트로 상기 3개의 "property" 엘리먼트에 대응되는 3개의 "variable" 엘리먼트를 생성한다.
또한, 상기 판단 결과(610), "property" 엘리먼트가 아니면 컨텍스트 처리부(160)는 "context" 엘리먼트 내부에 기술된 엘리먼트가 "faults" 엘리먼트인지 판단하여(630), "faults" 엘리먼트이면, 대응되는 BPEL의 "faultHandlers" 엘리먼트를 생성하고(625), 상기 BPML의 "faults" 엘리먼트의 종속 엘리먼트가 "case" 또는 "defualt" 엘리먼트인지 판단한다(630).
상기 판단 결과(630), 상기 BPML의 "faults" 엘리먼트의 종속 엘리먼트가 "case" 엘리먼트인 경우, 컨텍스트 처리부(160)는 상기 BPEL의 "faultHandlers" 엘리먼트의 종속 엘리먼트로 "catch" 엘리먼트를 생성한다(635).
또한, 상기 판단 결과(630), 상기 BPML의 "faults" 엘리먼트의 종속 엘리먼트가 "default" 엘리먼트인 경우, 컨텍스트 처리부(160)는 BPEL의 "faultHandlers" 엘리먼트의 종속 엘리먼트로 "catchAll" 엘리먼트를 생성한다(645).
한편, 상기 판단 결과(620), "faults" 엘리먼트가 아니면, 컨텍스트 처리부(160)는 "compensation" 엘리먼트를 처리함에 있어서, "process" 엘리먼트의 종속 엘리먼트로 포함되어있는 "compensation" 엘리먼트인지 판단한다(650).
상기 판단 결과(650), "compensation" 엘리먼트가 "process" 엘리먼트의 종속 엘리먼트로 포함된 엘리먼트인 경우, 대응되는 BPEL의 "compensationHandler" 엘리먼트를 생성한다(655).
상기 "context"의 상위 엘리먼트가 "process" 인지를 구분하는 이유는 BPEL에서 트랜잭션 수행을 위한 보상이 "scope" 단위로 이루어지는데 반해 BPML에서는 "process" 단위로 이루어지고, "process"에 대한 보상은 "process" 엘리먼트의 특수한 종속 엘리먼트인 "compensation" 엘리먼트로 정의되기 때문이다.
"compensarion" 엘리먼트는 "context" 엘리먼트의 종속 엘리먼트로 포함되어 있지 않기 때문에 컨텍스트 처리부(160)는 "compensation" 엘리먼트의 상위 엘리먼트가 "process" 엘리먼트인지를 판단하고, "prcess" 엘리먼트에 포함된 "compensation" 엘리먼트인 경우, 대응되는 BPEL의 "compensationHandler" 엘리먼트를 생성한다. 또한, 컨텍스트 처리부(160)는 "compensationHandler" 엘리먼트의 종속 엘리먼트로 "compensation" 엘리먼트의 내부 엘리먼트에 대응되는 BPEL 엘리먼트를 생성한다(660).
상기 판단 결과(650), "compensation" 엘리먼트가 아니면, 컨텍스트 처리부(160)는 "context" 엘리먼트 내부에 기술된 엘리먼트가 "exception" 엘리먼트인지 판단하여(670), "exception" 엘리먼트인 경우, 대응되는 BPEL의 "eventHandlers" 엘리먼트를 생성한다(675).
또한 상기 "exception" 엘리먼트의 종속 엘리먼트인 "event" 엘리먼트가 메세지 수신에 관련되었는지 또는 시그널에 관련된 것이지 판단하여(680), 메세지 수신에 관한 경우, 상기 BPEL의 "eventHandlers" 엘리먼트의 종속 엘리먼트로 "onMessage" 엘리먼트를 생성한다(685).
또한, 종속 엘리먼트인 "event" 엘리먼트가 시그널에 관한 경우, 상기 BPEL의 "eventHandlers" 엘리먼트의 종속 엘리먼트로 시그널에 관련된 "event" 처리를 알리는 주석을 생성한다(690). 이는 BPEL에는 시그널에 관련된 "event"를 지원하지 않기 때문이다.
상기와 같은 본 발명의 BPML에서 BPEL로의 변환 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함하는 것으로, 그 예로는 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk)-ROM, DVD(Digital Video Disk)-Rom, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.
또한, 이러한 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행 될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 발명은 BPML을 BPEL로 변환시킴으로써 BPEL을 지원하는 시스템에서 BPML로 기술된 웹 서비스의 컴포지션의 참조를 가능하게 할 수 있다.
또한, 본 발명은 BPML을 BPEL로 변환시킴으로써 BPEL을 지원하는 시스템에서 BPML을 따르는 비즈니스 프로세스 기술 문서를 산출할 수 있다.

Claims (23)

  1. BPML의 단순 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단순 액티버티 처리 단계;
    BPML의 복합 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 복합 액티버티 처리 단계;
    BPML의 프로세스 호출과 관련된 액티버티를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 특수 복합 액티버티 처리 단계;
    BPML의 동기화를 수행하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 동기화 처리 단계; 및
    BPML의 액티버티에 대한 예외 처리 및 프로세스 내부의 실행 환경을 기술하는 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 컨택스트 처리 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  2. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는,
    BPML의 엘리먼트인 "action" 엘리먼트가 종속 엘리먼트로 "call" 엘리먼트를 포함하는 경우, 상기 "action" 엘리먼트의 "portType"과 "operaton" 애트리뷰트 값 을 가지는 BPEL의 "receive" 엘리먼트를 생성하는 단계;
    상기 "call" 엘리먼트를 처리하기 위해 상기 특수 복합 액티버티 처리 단계를 실행하는 단계;
    상기 "action" 엘리먼트의 "portType"과 "operaton" 애트리뷰트 값을 가지는 BPEL의 "reply" 엘리먼트를 생성하는 단계; 및
    상기 "action" 엘리먼트가 종속 엘리먼트로 "call" 엘리먼트를 포함하지 않는 경우, 상기 "action" 엘리먼트에 대응되는 BPEL의 "invoke" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환 방법.
  3. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는,
    BPML의 엘리먼트인 "assign" 엘리먼트에 대응되는 BPEL의 "assign" 엘리먼트를 생성하는 단계;
    상기 BPEL의 "assign" 엘리먼트의 종속 엘리먼트로 "copy" 엘리먼트를 생성하는 단계; 및
    상기 "copy" 엘리먼트의 종속 엘리먼트로 "from" 엘리먼트와 "to" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환 방법.
  4. 제 3 항에 있어서,
    상기 BPEL의 "form" 엘리먼트와 "to" 엘리먼트를 생성하는 단계는,
    상기 BPML의 "assign" 엘리먼트의 종속 엘리먼트인 "source" 엘리먼트 또는 "value" 엘리먼트를 참조하여 상기 BPEL의 "from" 엘리먼트의 "variable" 또는 "expression" 애트리뷰트의 값을 설정하는 단계; 및
    상기 BPML의 "assign" 엘리먼트의 "property" 애트리뷰트의 값을 참조하여 상기 BPEL의 "to" 엘리먼트의 "variable" 애트리뷰트의 값을 설정하는 단계
    를 더 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환 방법.
  5. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는,
    BPML의 엘리먼트인 "compensate" 엘리먼트에 대응되는 BPEL의 "compensate" 엘리먼트를 생성하는 단계; 및
    상기 BPML의 "compensate" 엘리먼트의 "scope" 애트리뷰트 값을 참조하여 상 기 BPEL의 "compensate" 엘리먼트의 "process" 애트리뷰트의 값을 설정하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  6. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는,
    BPML의 엘리먼트인 "delay" 엘리먼트에 대응되는 BPEL의 "wait" 엘리먼트를 생성하는 단계;
    상기 "delay" 엘리먼트의 "type" 애트리뷰트 값이 "duration"이면 "for" 애트리뷰트를 가지는 "wait" 엘리먼트를 생성하는 단계;
    상기 "delay" 엘리먼트의 "type" 애트리뷰트 값이 "instant"이면 "until" 애트리뷰트를 가지는 "wait" 엘리먼트를 생성하는 단계; 및
    상기 "for"와 "until" 애트리뷰트는 상기 "delay" 엘리먼트의 "property" 애트리뷰트의 값을 참조하여 설정하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  7. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는,
    BPML의 엘리먼트인 "empty" 엘리먼트에 대응되는 BPEL의 "empty" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  8. 제 1 항에 있어서,
    상기 단순 액티버티 처리 단계는
    BPML의 엘리먼트인 "fault" 엘리먼트에 대응되는 BPEL의 "throw" 엘리먼트를 생성하는 단계; 및
    상기 BPML의 "fault" 엘리먼트의 "code" 애트리뷰트의 값을 참조하여 상기 "throw" 엘리먼트의 "faultName" 애트리뷰트 값을 설정하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  9. 제 1 항에 있어서,
    상기 컨텍스트 처리 단계는,
    BPML의 엘리먼트인 "process" 엘리먼트에 대해서 주석 처리를 하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  10. 제 1 항에 있어서,
    상기 컨텍스트 처리 단계는,
    BPML의 "context" 엘리먼트의 종속 엘리먼트인 "property" 엘리먼트에 대응되는 BPEL의 "variables" 엘리먼트를 생성하는 단계; 및
    상기 "variables" 엘리먼트의 종속 엘리먼트로 상기 "property" 엘리먼트의 수만큼 대응되는 BPEL의 "variable" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  11. 제 1 항에 있어서,
    상기 컨텍스트 처리 단계는,
    BPML의 "context" 엘리먼트의 종속 엘리먼트인 "fault" 엘리먼트에 대응되는 BPEL의 "faultHandlers" 엘리먼트를 생성하는 단계;
    상기 "fault" 엘리먼트의 종속 엘리먼트가 "case" 또는 "default" 엘리먼트인지 판단하는 단계;
    상기 "fault" 엘리먼트의 종속 엘리먼트가 "case" 엘리먼트인 경우, 대응되는 BPEL의 "catch" 엘리먼트를 생성하는 단계; 및
    상기 "fault" 엘리먼트의 종속 엘리먼트가 "default" 엘리먼트인 경우, 대응되는 BPEL의 "catchAll" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  12. 제 1 항에 있어서,
    상기 컨텍스트 처리 단계는,
    BPML의 엘리먼트인 "compensation" 엘리먼트의 상위 엘리먼트가 "process" 엘리먼트인 경우, 대응되는 BPEL의 "compensationHandler" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  13. 제 1 항에 있어서,
    상기 컨텍스트 처리 단계는,
    BPML의 "context" 엘리먼트의 종속 엘리먼트인 "exception" 엘리먼트에 대응 되는 BPEL의 "eventHandlers" 엘리먼트를 생성하는 단계;
    상기 "exception" 엘리먼트의 종속 엘리먼트인 "event" 엘리먼트가 메세지 수신에 관한 것인지 시그널에 관련된 것인지 판단하는 단계;
    상기 "evnet" 엘리먼트가 메세지 수신에 관한 경우, 상기 "exception" 엘리먼트의 종속 엘리먼트로 "onMessage" 엘리먼트를 생성하는 단계; 및
    상기 "event" 엘리먼트가 시그널에 관련된 경우, 관련된 "event" 처리를 알리는 주석을 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  14. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "all" 엘리먼트가 "context" 엘리먼트를 종속 엘리먼트로 포함하는 경우, BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 엘리먼트를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    상기 "all" 엘리먼트에 대응되는 BPEL의 "flow" 엘리먼트를 생성하는 단계; 및
    상기 "all" 엘리먼트가 "context" 엘리먼트를 포함하지 않는 경우, 상기 "all" 엘리먼트에 대응되는 BPEL의 "flow" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  15. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "sequence" 엘리먼트가 "context" 엘리먼트를 종속 엘리먼트로 포함하는 경우, BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 엘리먼트를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    상기 BPML의 "sequence" 엘리먼트에 대응되는 BPEL의 "sequence" 엘리먼트를 생성하는 단계; 및
    상기 BPML의 "sequence" 엘리먼트가 "context" 엘리먼트를 포함하지 않는 경우, 상기 BPML의 "sequence" 엘리먼트에 대응되는 BPEL의 "sequence" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  16. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "while" 엘리먼트가 "context" 엘리먼트를 종속 엘리먼트로 포함하는 경우, BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 엘리먼트를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    상기 BPML의 "while" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계; 및
    상기 BPML의 "while" 엘리먼트가 "context" 엘리먼트를 포함하지 않는 경우, 상기 BPML의 "while" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  17. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "until" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함하는 경우, BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 엘리먼트를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    BPEL의 "sequence" 엘리먼트를 생성하고, 상기 "until" 내부의 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단계;
    상기 "sequence" 엘리먼트의 종속 엘리먼트로 상기 "until" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계;
    상기 "until" 엘리먼트가 상기 "context" 엘리먼트를 포함하지 않는 경우, BPEL의 "sequence" 엘리먼트를 생성하는 단계;
    상기 "until" 내부의 엘리먼트에 대응되는 BPEL의 엘리먼트를 생성하는 단계; 및
    상기 "sequence" 엘리먼트의 종속 엘리먼트로 상기 "until" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  18. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "foreach" 엘리먼트가 종속 엘리먼트로 상기 "context" 엘리먼트를 포함하는 경우, BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    상기 "foreach" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계;
    상기 "while" 엘리먼트 내부에 상기 "while" 엘리먼트가 BPML의 "foreach" 엘리먼트로 부터 생성된 것임을 나타내는 주석을 생성하는 단계;
    상기 "foreach" 엘리먼트가 상기 "context" 엘리먼트를 포함하지 않는 경우, 상기 "foreach" 엘리먼트에 대응되는 BPEL의 "while" 엘리먼트를 생성하는 단계; 및
    상기 "while" 엘리먼트 내부에 상기 "while" 엘리먼트가 BPML의 "foreach" 엘리먼트로 부터 생성된 것임을 알리는 주석을 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  19. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "switch" 엘리먼트에 대응하는 BPEL의 "switch" 엘리먼트를 생성하는 단계;
    상기 BPML의 "switch" 엘리먼트의 종속 엘리먼트가 "case" 엘리먼트인지, "default" 엘리먼트인지 판단하는 단계;
    상기 종속 엘리먼트가 "case" 엘리먼트인 경우, 상기 BPEL의 "switch" 엘리 먼트의 종속 엘리먼트로 "case" 엘리먼트를 생성하는 단계; 및
    상기 종속 엘리먼트가 "default" 엘리먼트인 경우, 상기 BPEL의 "switch" 엘리먼트의 종속 엘리먼트로 "otherwise" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  20. 제 1 항에 있어서,
    상기 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "choice" 엘리먼트에 대응하는 BPEL의 "pick" 엘리먼트를 생성하는 단계;
    상기 "choice" 엘리먼트의 종속 엘리먼트가 "action" , "delay" 또는 "synch" 엘리먼트인지 판단하는 단계;
    상기 "choice" 엘리먼트의 종속 엘리먼트가 "action" 엘리먼트인 경우, 상기 "pick" 엘리먼트의 종속 엘리먼트로 "onMessage" 엘리먼트를 생성하는 단계;
    상기 "choice" 엘리먼트의 종속 엘리먼트가 "delay" 엘리먼트인 경우, 상기 "pick" 엘리먼트의 종속 엘리먼트로 "onAlarm" 엘리먼트를 생성하는 단계; 및
    상기 "choice" 엘리먼트의 종속 엘리먼트가 "synch" 엘리먼트인 경우, 상기 "pick" 엘리먼트의 내부에 "synch" 엘리먼트에 대한 시그널 이벤트가 생략되었음을 알리는 주석을 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  21. 제 1 항에 있어서,
    상기 특수 복합 액티버티 처리 단계는,
    BPML의 엘리먼트인 "call" 또는 "spawn" 엘리먼트가 호출한 "process" 엘리먼트를 검색하는 단계;
    상기 "process" 엘리먼트가 종속 엘리먼트로 "context" 엘리먼트를 포함하는지 판단하는 단계;
    상기 "process" 엘리먼트가 종속 엘리먼트로 상기 "context" 엘리먼트를 포함하는 경우, BPEL의 "sequence" 엘리먼트를 생성하는 단계;
    상기 "sequence" 엘리먼트의 종속 엘리먼트로 BPEL의 "scope" 엘리먼트를 생성하는 단계;
    상기 "context" 엘리먼트를 처리하기 위해 컨텍스트 처리 단계를 실행하는 단계;
    BPEL의 "sequence" 엘리먼트를 생성하여 그 내부에 상기 "process" 엘리먼트내부의 엘리먼트에 대응하는 BPEL의 엘리먼트를 생성하는 단계;
    상기 "process" 엘리먼트가 "context" 엘리먼트를 포함하지 않는 경우, BPEL의 "sequence" 엘리먼트를 생성하는 단계; 및
    상기 생성된 "sequence" 엘리먼트 내부에 상기 "process" 엘리먼트 내부의 엘리먼트에 대응하는 BPEL의 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  22. 제 1 항에 있어서,
    상기 동기화 처리 단계는,
    BPML의 엘리먼트인 "raise" 엘리먼트에 대응하는 BPEL의 "empty" 엘리먼트를 생성하는 단계; 및
    상기 "empty" 엘리먼트의 종속 엘리먼트로 상기 "raise" 엘리먼트에 대응되는 BPEL의 "source" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
  23. 제 1 항에 있어서,
    상기 동기화 처리 단계는,
    BPML의 엘리먼트인 "synch" 엘리먼트에 대응하는 BPEL의 "empty" 엘리먼트를 생성하는 단계; 및
    상기 "empty" 엘리먼트의 종속 엘리먼트로 상기 "synch" 엘리먼트에 대응되는 BPEL의 "target" 엘리먼트를 생성하는 단계
    를 포함하는 실행 가능한 비즈니스 프로세스를 위한 BPML에서 BPEL로의 변환방법.
KR1020040042747A 2004-06-10 2004-06-10 Bpml에서 bpel로의 변환 방법 KR100561632B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040042747A KR100561632B1 (ko) 2004-06-10 2004-06-10 Bpml에서 bpel로의 변환 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040042747A KR100561632B1 (ko) 2004-06-10 2004-06-10 Bpml에서 bpel로의 변환 방법

Publications (2)

Publication Number Publication Date
KR20050117437A KR20050117437A (ko) 2005-12-14
KR100561632B1 true KR100561632B1 (ko) 2006-03-20

Family

ID=37290847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040042747A KR100561632B1 (ko) 2004-06-10 2004-06-10 Bpml에서 bpel로의 변환 방법

Country Status (1)

Country Link
KR (1) KR100561632B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231405B1 (ko) 2020-09-24 2021-03-25 (주)디비테크 차량용 공기살균기

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050064799A (ko) * 2003-12-24 2005-06-29 한국전자통신연구원 더블유에스씨아이에서 비피이엘의 변환 방법 및 그 변환기

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050064799A (ko) * 2003-12-24 2005-06-29 한국전자통신연구원 더블유에스씨아이에서 비피이엘의 변환 방법 및 그 변환기

Also Published As

Publication number Publication date
KR20050117437A (ko) 2005-12-14

Similar Documents

Publication Publication Date Title
US8762933B2 (en) Converting business process models to component models in a service oriented architecture domain
Alonso et al. Web services
Guinard et al. Interacting with the soa-based internet of things: Discovery, query, selection, and on-demand provisioning of web services
US7949999B1 (en) Providing support for multiple interface access to software services
US8065657B2 (en) Exchange infrastructure system and method
Bucchiarone et al. A survey on services composition languages and models
Sapkota et al. Distributed web service discovery architecture
Chao et al. Analysis of grid service composition with BPEL4WS
Bennara et al. An approach for composing restful linked services on the web
Haselwanter et al. Wsmx: A semantic service oriented middleware for b2b integration
Kim et al. A framework for sharing product information across enterprises
EP1506478B1 (en) Exchange infrastructure system and method
Guinard et al. Restifying real-world systems: A practical case study in rfid
Habich et al. Data-grey-boxweb services in data-centric environments
KR100561632B1 (ko) Bpml에서 bpel로의 변환 방법
KR100511136B1 (ko) 더블유에스씨아이에서 비피이엘의 변환 방법 및 그 변환기
KR100549381B1 (ko) Bpel에서 bpml로의 변환 방법
Lewis Getting started with service-oriented architecture (SOA) terminology
Khalaf From rosettanet pips to bpel processes: A three level approach for business protocols
KR100511137B1 (ko) 비피이엘에서 더블유에스씨아이로의 변환 방법 및 그 변환기
Van Lessen et al. An execution engine for semantic business processes
Dustdar et al. View based integration of heterogeneous web service registries—the case of VISR
Micillo et al. An agent-based approach for distributed execution of composite web services
Duscher An execution environment for mathematical services based on wsrf and ws-bpel
Vargas-Solar et al. Building WEB services portals: implementation experiences

Legal Events

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

Payment date: 20090303

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee