비즈니스 프로세스 실행 언어
Business Process Execution Language웹 서비스 비즈니스 프로세스 실행 언어 | |
약어 | WS-BPEL 또는 BPEL |
---|---|
상태 | 출판된 |
년도시작 | 2001 |
초간출판 | 2003년 4월; | 전(
최신 버전 | 2.0 2007년 4월 11일; 전 |
조직 | 오아시스 |
위원회 | OASIS 웹 서비스 비즈니스 프로세스 실행 언어(WSBPEL) TC |
기준 표준 | XML |
도메인 | 웹 서비스 통합 |
웹사이트 | docs |
일반적으로 BPEL(Business Process Execution Language)로 알려진 WS-BPEL(Web Services Business Process Execution Language)은 OASIS[1] 표준 실행 언어로, 웹 서비스를 통해 비즈니스 프로세스 내의 작업을 명시하기 위한 것이다.BPEL의 프로세스는 웹 서비스 인터페이스를 독점적으로 사용하여 정보를 수출입한다.
개요
웹-서비스 상호작용을 실행 가능한 비즈니스 프로세스와 추상적인 비즈니스 프로세스라는 두 가지 방법으로 설명할 수 있다.
- 실행 가능한 비즈니스 프로세스: 비즈니스 상호작용에 참여하는 참가자의 실제 행동을 모델링.
- 추상적인 비즈니스 프로세스: 부분적으로 지정된 프로세스로서 실행되지 않는다.실행 가능한 프로세스와는 반대로, 추상 프로세스는 필요한 구체적인 운영 세부사항 중 일부를 숨길 수 있다.추상 프로세스는 관측 가능한 동작 및/또는 프로세스 템플릿을 포함하여 둘 이상의 사용 사례를 포함하는 서술적인 역할을 한다.
WS-BPEL은 실행 가능한 비즈니스 프로세스와 추상적인 비즈니스 프로세스의 사양에 대한 언어를 통해 프로세스의 동작을 모델링하는 것을 목표로 한다.[2]이를 통해 웹 서비스 상호 작용 모델을 확장하고 비즈니스 트랜잭션을 지원할 수 있다.또한 기업 내부 및 기업 간 자동화된 프로세스 통합의 확대를 촉진해야 하는 상호운용 가능한 통합 모델을 정의한다.그것의 발전은 대량의 프로그래밍과 소량의 프로그래밍은 다른 종류의 언어를 요구한다는 개념에서[3] 나왔다.
이와 같이 XML로 직렬화하여 대규모 프로그래밍을 가능하게 하는 것을 목표로 한다.
대형/소형 프로그래밍
대규모 프로그래밍과 소규모 프로그래밍의 개념은 비즈니스 프로세스에서 일반적으로 볼 수 있는 장기 실행 비동기 프로세스의 유형을 작성하는 두 가지 측면을 구분한다.
- 대규모 프로그래밍은 일반적으로 프로세스의 높은 수준의 상태 전환 상호작용을 가리킨다.BPEL은 이 개념을 추상적 과정이라고 한다.BPEL 추상화 프로세스는 표준화된 방식으로 공개적으로 관찰할 수 있는 일련의 행동을 나타낸다.추상 프로세스에는 메시지 대기 시기, 메시지 전송 시기, 실패한 트랜잭션에 대한 보상 시기 등과 같은 정보가 포함된다.
- 반대로 프로그래밍은 종종 단일 트랜잭션으로 실행되며 파일, 데이터베이스, 기타 정보와 같은 로컬 로직과 자원에 대한 액세스를 수반하는 단명 프로그램적 행동을 다룬다.
역사
WS-BPEL의 기원은 WSFL(Web Services Flow Language)과 Xlang으로 거슬러 올라간다.
2001년에 IBM과 마이크로소프트는 각각 WSFL[4](Web Services Flow Language)과 Xlang 등 상당히 유사한 "대규모" 언어를 정의했다.[5]마이크로소프트는 심지어 XLANG/s라는 스크립팅 변종을 만들어 나중에 BizTalk 서버 내에서 그들의 오케스트레이션 서비스의 기반이 될 것이다.그들은 특히 이 언어가 "독재적이며 완전히 문서화되지 않았다"고 문서화했다.
IBM과 마이크로소프트는 BPML의 등장과 인기 그리고 BPMI.org의 증가하는 성공과 JBoss와 Intalio Inc.에 의해 주도된 열린 BPMS 운동으로 이 언어들을 새로운 언어인 BPEL4로 결합하기로 결정했다.WS. 2003년 4월, BEA Systems, IBM, Microsoft, SAP, Siebel Systems는 웹 서비스 BPEL 기술 위원회를 통해 표준화를 위해 BPEL4WS 1.1을 OASIS에 제출하였다.[7]비록 BPEL4는공군 기상대는 1.0및 1.1버전, OASISWS-BPEL 기술 위원회 voted[8]142004년 9월에 그들의 투기"WS-BPEL 2.0"이름을 짓는다.(이름의 변화 다른 웹 서비스 표준은"WS-"로 시작하는 관습의 이름을 짓고 웹 서비스 보안과 비슷하BPEL 정렬)과 중요한 강화 BPEL4WS 1일 사이에 만들어진 계정 필요했습니다..1및 WS-BPEL 2.0.) 특정 버전을 논의하지 않을 경우 일반적으로 모니커 BPEL을 사용한다[citation needed].
2007년 6월에 액티브 엔드포인트, 어도비 시스템즈, BEA, IBM, 오라클 및 SAP는 BPEL 프로세스에서 인간 상호작용이 구현될 수 있는 방법을 설명하는 BPEL4People 및 WS-HumanTask 규격을 발표하였다.
주제
설계목표
BPEL과 관련된 10개의 원래 설계 목표가 있었다.
- WSDL(Web Services Description Language) 1.1을 사용하여 정의되고 WSDL 1.1을 사용하여 정의된 웹 서비스로서 자신을 나타내는 웹 서비스 운영을 통해 외부 기업과 상호작용하는 비즈니스 프로세스를 정의한다.상호 작용은 포트 정의가 아니라 portType 정의에 의존한다는 점에서 "추상적"이다.
- XML 기반 언어를 사용하여 비즈니스 프로세스 정의프로세스의 그래픽 표현을 정의하거나 프로세스에 대한 특정 설계 방법론을 제공하지 마십시오.
- 비즈니스 프로세스의 외부(추상) 보기와 내부(실행 가능) 보기에서 모두 사용할 웹 서비스 조정 개념 집합을 정의하십시오.그러한 사업 프로세스는 일반적으로 유사한 다른 동위 기업과 상호 작용하여 운영되는 단일 자치체의 행동을 정의한다.각 사용 패턴(즉, 추상적인 보기와 실행 가능한 보기)은 몇 가지 전문화된 확장이 필요하지만, 이러한 확장은 최소한으로 유지하고 두 사용 패턴을 연결하는 수출입 및 적합성 확인과 같은 요건에 대해 시험해야 한다.
- 계층적 제어 방식과 그래프와 같은 제어 방식을 모두 제공하고, 가능한 한 원활하게 사용할 수 있도록 하십시오.이것은 프로세스 모델링 공간의 단편화를 줄여야 한다.
- 프로세스 데이터 정의 및 흐름 제어에 필요한 데이터의 단순한 조작을 위한 데이터 조작 기능 제공.
- 응용 프로그램 메시지 수준에서 인스턴스 식별자를 정의할 수 있는 프로세스 인스턴스에 대한 식별 메커니즘을 지원한다.인스턴스 식별자는 파트너가 정의해야 하며 변경될 수 있다.
- 프로세스 인스턴스의 암묵적인 생성과 종료를 기본 라이프사이클 메커니즘으로 지원한다.향상된 라이프사이클 관리를 위해 "보류" 및 "재개"와 같은 고급 라이프사이클 운영이 향후 릴리스에 추가될 수 있다.
- 보상 조치 및 장기간 실행되는 비즈니스 프로세스의 일부에 대한 장애 복구를 지원하기 위한 범위 지정과 같은 입증된 기술을 기반으로 하는 장기 실행 트랜잭션 모델을 정의하십시오.
- 프로세스 분해 및 조립의 모델로 웹 서비스를 사용하십시오.
- 웹 서비스 표준(승인 및 제안)을 가능한 한 복합적이고 모듈적인 방식으로 구축하십시오.
BPEL 언어
BPEL은 오케스트레이션 언어지 안무 언어가 아니다.오케스트레이션과 안무의 주요 차이점은 실행성과 제어력이다.오케스트레이션은 메시지 교환 시퀀스가 오케스트레이션 설계자에 의해 제어되도록 다른 시스템과의 메시지 교환을 포함하는 실행 가능한 프로세스를 지정한다.안무는 피어투피어 상호작용을 위한 프로토콜을 지정하며, 예를 들어 상호운용성 보장의 목적과 교환되는 메시지의 법적 순서를 정의한다.그러한 프로토콜은 많은 다른 실현(그것을 준수하는 프로세스)을 허용하기 때문에 직접적으로 실행 가능한 것은 아니다.안무는 관련된 각 피어에 대해 오케스트레이션(예: BPEL 프로세스 형태)을 작성함으로써 실현될 수 있다.오케스트레이션과 안무의 구분은 유사성에 바탕을 두고 있는데, 오케스트레이션은 분산된 시스템(많은 연주자로 구성된 오케스트라)의 동작에 대한 중앙 통제(지휘자에 의한)를, 안무는 규칙(안무)에 따라 운영되는 분산된 시스템(춤추는 팀)을 가리킨다.중앙 집중식 제어 없이
BPEL은 현대 비즈니스 프로세스와 WSFL과 XLANG의 이력에 초점을 맞추면서 외부 커뮤니케이션 메커니즘으로 웹 서비스를 채택하게 되었다.그러므로 BPEL의 메시지 설비는 발신 및 수신 메시지를 기술하기 위해 WSDL(Web Services Description Language) 1.1의 사용에 의존한다.
BPEL 프로그래밍 언어는 메시지 송수신이 가능하도록 설비를 제공하는 것 외에도 다음을 지원한다.
- 속성 기반 메시지 상관 관계 메커니즘
- XML 및 WSDL 입력 변수
- 다국어로 표현식 및 쿼리를 쓸 수 있도록 확장 가능한 언어 플러그인 모델: BPEL은 기본적으로 XPath 1.0을 지원한다.
- if-ten-elseif-else, sequence(명령 실행을 순서대로 활성화) 및 flow(명령 실행을 병렬로 활성화)를 포함한 구조화된 프로그래밍 구성
- 로컬 변수, 결함 핸들러, 보상 핸들러 및 이벤트 핸들러와의 논리 캡슐화를 허용하는 범위 지정 시스템
- 변수에 대한 동시 액세스를 제어하는 직렬화된 범위.
BPEL과 BPMN의 관계
OASIS 기술 위원회가 이것이 범위를 벗어났다고 결정했기 때문에 WS-BPEL에 대한 표준 그래픽 표기법은 없다.몇몇 상인들은 그들만의 생각을 발명했다.이러한 공지는 BPEL의 대부분의 구조물이 블록 구조화되어 있다는 사실을 활용한다(예: 시퀀스, 반면 선택, 스코프 등).이 기능은 BPEL 프로세스 설명을 구조그램 형태로 직접 시각적으로 표현하고, Nassi–을 연상시키는 스타일을 가능하게 한다.슈나이더만 도표.
다른 이들은 BPEL 프로세스 설명을 캡처하기 위한 그래픽 프런트엔드로서 실질적으로 다른 비즈니스 프로세스 모델링 언어, 즉 BPMN(Business Process Model and Motification)을 사용할 것을 제안하였다.BPMN 규격은 이 접근방식의 실현가능성에 대한 예로서 BPMN에서 BPEL 1.1까지의 비공식적이고 부분적인 매핑을[9] 포함한다.BPMN과 BPEL의 보다 상세한 매핑은 BPMN2BPEL로 알려진 오픈 소스 도구를 포함한 많은 도구에서 구현되었다.[10]그러나 이러한 도구의 개발은 BPMN과 BPEL 사이의 근본적인 차이를 노출시켜 BPMN 모델에서 사람이 판독할 수 있는 BPEL 코드를 생성하는 것을 매우 어렵게 하고, 경우에 따라서는 불가능한 경우도 있다.더욱 어려운 것은 BPMN-to-BPEL 왕복 엔지니어링의 문제인데, BPMN 다이어그램에서 BPEL 코드를 생성하고, 원래의 BPMN 모델과 생성된 BPEL 코드를 동기화된 상태로 유지하는 것이다.[citation needed]
BPEL에 '소규모 프로그래밍' 지원 추가
BPEL의 'if-then-elseif-else'와 'while'과 같은 제어 구조와 가변 조작 설비는 논리를 제공하기 위해 '작은 언어로 프로그래밍'하는 사용에 달려 있다.모든 BPEL 구현은 XPath 1.0을 기본 언어로 지원해야 한다.그러나 BPEL의 설계는 시스템 구축업체들이 다른 언어들도 사용할 수 있도록 확장성을 예상한다.BPELJ는[11] Java가 BPEL 내에서 '작은 언어로 프로그래밍'하는 역할을 할 수 있도록 JSR 207과[12] 관련된 노력이다.
BPEL4피플
분산된 비즈니스 애플리케이션에서 웹 서비스를 폭넓게 수용했음에도 불구하고, 인간 상호작용의 부재는 많은 실제 비즈니스 프로세스에서 상당한 격차였다.
이 공백을 메우기 위해, BPEL4People은 웹 서비스 단독의 조정에서 역할 기반 인간 활동의 조정까지 BPEL을 확장했다.
목표
비즈니스 프로세스 맥락 내에서 BPEL4사용자
- 역할 기반 상호 작용 지원
- 일반 사용자 역할에 사용자를 할당하는 방법 제공
- 직무의 소유권을 남에게만 위임하도록 주의하다.
- 시나리오 지원:
추가적인 독립적인 구문 및 의미와 함께 BPEL을 확장함으로써.
WS-HumanTask 규격은 인간 작업 조작에 사용되는 속성, 행동 및 일련의 작업을 포함하여 인간 작업과 통지의 정의를 도입한다.서비스 가능한 인간 업무의 자율성과 라이프 사이클을 상호운용 가능한 방식으로 제어하기 위해 조정 프로토콜이 도입된다.
BPEL4People 규격은 WS-BPEL의 인간 상호작용을 1급 시민으로서 다루기 위해 WS-BPEL 확장을 도입한다.인간 작업을 구현으로 사용하는 새로운 유형의 기본 활동을 정의하고, 프로세스 정의 외부에 정의된 작업을 프로세스 로컬로 지정하거나 사용할 수 있도록 한다.이 확장자는 WS-HumanTask 사양에 기초한다.
WS-BPEL 2.0
버전 2.0에는 다음과 같은 몇 가지 변경 사항과 새로운 기능이 도입되었다.
- 새 활동 유형: 각 활동(병렬 및 순차), 재던지기, 확장활동, 보상스코프까지 반복
- 이름이 바뀐 활동: 스위치/케이스 이름을 if/else로, 종료 이름을 exit로 변경하여 종료
- 종료에 대한 명시적 동작을 제공하기 위해 범위 활동에 종료 처리기를 추가함
- 변수 초기화
- 변수 변환에 대한 XSLT(New XPath 확장 함수 bpws:doXslTransform)
- 변수 데이터에 대한 XPath 액세스(XPath 변수 구문 $variable[.part]/위치)
- 웹 서비스 활동의 XML 스키마 변수(WS-I doc/Little service interaction용)
- 로컬로 선언된 메시지교환(수신 및 회신 활동의 내부 상관 관계)
- 추상적 프로세스의 명확화(동기 및 의미론)
- 각 활동에서 식 언어 재정의 사용
참고 항목
- BPEL4피플
- BPEL 문자
- 비즈니스 프로세스 모델 및 표기법
- 비즈니스 프로세스 모델링
- BPEL 엔진 목록
- 웹 서비스 대화 언어
- 워크플로우
- WS-CDL
- XML 프로세스 정의 언어
- 아직 다른 워크플로 언어
참조
- ^ OASIS 표준 WS-BPEL 2.0
- ^ 웹 서비스를 위한 비즈니스 프로세스 실행 언어 버전 1.1(2003년 5월 5일)
- ^ "OASIS Members Form Web Services Business Process Execution Language (WSBPEL) Technical Committee". OASIS WSBPEL Technical Committee. 29 April 2003.
- ^ "Cover Pages: Web Services Flow Language (WSFL)". xml.coverpages.org/. 6 June 2001. Retrieved 9 October 2014.
- ^ "XLANG". xml.coverpages.org/. 2001. Retrieved 9 October 2014.
- ^ "XLANG/s Language". Microsoft. Retrieved 9 October 2014.
- ^ 웹 서비스 BPEL 기술 위원회.
- ^ "choreology.com". choreology.com. Archived from the original on 27 February 2012. Retrieved 17 April 2013.
- ^ "Archived copy" (PDF). Archived from the original (PDF) on 15 September 2012. Retrieved 17 April 2013.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ BPMN2BPEL.
- ^ BPELJ 2005년 5월 16일 웨이백 머신에 보관
- ^ JSR 207
추가 읽기
- BPEL 2.0에 관한 책
- 비즈니스 개발자를 위한 SOA: 개념, BPEL 및 SCA.ISBN 978-1-58347-065-7