BPEL

이미지 출처:
http://docs.huihoo.com/oracle/docs/B14099_19/integrate.1012/b14448/img/flown0.gif
BPEL ?
- Business Process Execution Language for Web Services(BPEL 또는 BPEL4WS)
- 웹 서비스 환경에서 비즈니스 프로세스를 정의하고 실행하기 위한 표준 언어
- BPEL은 웹 서비스의 composition, orchestration, coordination을 통해 탑-다운 방식으로
SOA(Service Oriented Architecture)를 구현
- BPEL을 이용하면 웹 서비스에 “비즈니스 프로세스(business process)”라 불리는 컴포지트 서비스(composite
service)를 쉽게, 그리고 직관적으로 구현
BPEL Background
- 2003년 4월 BPEL은 표준화를 위해 OASIS(Organization for the Advancement of
Structured Information Standards)에 제출
- BPEL은 이전의 두 가지 워크플로우 언어, 즉 Web Services Flow Language(WSFL)과 XLANG의 성과를
물려받은 차세대 언어
- 웹 서비스 테크놀로지 스택을 지원하기 위해 XML 기반 언어를 사용
- WS-Reliable Messaging, WS-Addressing, WS-Coordination, WS-Transaction 등
Orchestration vs. Choreography
- Orchestration
- 기업의 내부적인 비즈니스 프로세스에 주로 사용
- 중앙 프로세스(다른 웹 서비스)가 관련 웹 서비스들을 통제하고 각각의 웹 서비스가 실행하는 작업을 조율하는 방식
- 웹 서비스들의 호출 순서와 작업 방법을 명시적으로 정의함으로써 중앙집중화된 orchestration 환경을 구현
- Choreography
- 대신 choreography에 가담하는 각각의 웹 서비스가 실행 순서와 대상을 명확하게 알고 있음
- Choreography는 기업 간 비즈니스 프로세스 환경에서의 메시지 교환에 초점을 맞춘 협업 방식
- BPEL은 orchestration과 choreography를 지원
- Executable process는 “orchestration” 패러다임을 따르며, orchestration 엔진에 의해 실행
- Abstract business protocol 조직 간의 퍼블릭 메시지(public message) 교환 방법을 정의,
“choreograph” 패러다임을 따름
BPEL Process Structure
- Variable
- WSDL 메시지 형식, XML 스키마의 간단한 형식, 또는 XML 스키마 엘리먼트로 정의
- PartnerLinks
- 비즈니스 프로세스와 상호작용하는 서로 다른 상대편들을 정의
- 파트너 링크는 파트너 링크 형식과 역할의 이름으로 정의
- faultHandler
- 할당과 승인 서비스의 호출로부터 발생하는 결함의 결과로 수행되어야 하는 단위업무를 정의
BPEL Activity
- primitive activity
- “Primitive” activity는 일반적인 태스크에 사용되는 가장 기본적인 구성요소를 정의
- : 클라이언트가 메시지를 전달함으로써 비즈니스 프로세스를 호출할 때까지 대기
- structure activity
- 액티비티들을 조합하여 비즈니스 프로세스의 각 단계를 정의하는 복잡한 알고리즘을 구현
- Sequence (): 일정한 순서로 호출되는 액티비티의 집합을 정의
- Flow (): 병렬적으로 호출되는 액티비티의 집합을 정의
- Case-switch construct (): 분기 조건의 구현