 |  |
|
난이도 : 중급 Qiang Wang, Software Engineer, IBM, Intel, Microsoft,HP Mary Taylor, Senior Software Engineer,
IBM
2007 년 7 월 03 일 본 시리즈에서는 복합 애플리케이션을 개발하여 비즈니스 서비스를 실행하는 방법을 설명하고 있습니다. Composite Business Services 컴포넌트는 Service Component Architecture에 순응하고, IBM WebSphere® Business Modeler (WBM)와 IBM WebSphere Integration Developer (WID) 같은 통합 툴 수트를 사용하여 개발됩니다. 이러한 툴에서 만들어 지는 생성물들을 위한 실행 서버는 IBM WebSphere Process Server입니다. 이 글에서는 WBM V6을 사용하여 비즈니스 프로세스를 모델링, 조합, 전개할 때의 베스트 프랙티스를 설명합니다. 또한, WBM과 WID의 통합 시 발생하는 차이점도 규명하고 프로세스 모델링 작업 과정 속에서 배운 교훈들도 나눕니다.
머리말
WebSphere Business Modeler (WBM) Advanced Edition Version 6를 사용하여 비즈니스 분석가는 복합 비즈니스 서비스(CBS)용 비즈니스 모델을 구현할 수 있다. 소프트웨어 개발의 기술적 상세까지 파고들어갈 필요도 없다. WBM은 또한 모델 생성물을 IBM WebSphere Integration Developer (WID) 생성물로 변형하는 반출 함수도 제공한다. WBM Advanced Edition은 다음과 같이 변형을 수행한다.
- 비즈니스 프로세스를 Business Process Execution Language (BPEL) 구조로 변형
- 인터페이스를 Web Services Description Language (WSDL) 파일로 변형
- 비즈니스 아이템과 기타 유형 정의를 XML schema definition (XSD) 파일과 비즈니스 객체(BO) 정의로 변형
비즈니스 프로세스를 BPEL 구조로 변형하는 데는 많은 도전이 뒤따른다. 이 글에서는 WBM V6을 사용하여 비즈니스 프로세스를 모델링, 조합, 전개하는 베스트 프랙티스를 설명한다. 또한 WBM과 WID를 통합할 때의 문제점도 규명해 본다. 실제 유스 케이스인 신용 카드 요청 예제를 통해 프로세스 모델링 작업을 하는 동안 배웠던 교훈들도 설명한다.
신용 카드 신청 유스 케이스 예제
신용 카드 신청 시나리오 예제(그림 1)는 베스트 프랙티스를 나타내고 있다. 이 유스 케이스에서, 은행 고객은 은행 포털을 통해 신용 카드를 신청하고 있다. 사용자 인터페이스(UI)는 고객의 프로파일에서 사회 보장 넘버(SSN)를 검색하는 BPEL 프로세스를 호출하여 신용 평점 서비스를 실행한다. 리턴 된 신용 평점을 기반으로, 신용 카드 신청은 자동으로 거부, 승인, 또는 매니저의 직접적인 검토를 위해 전달된다. 결정은 신용 평점에 기반하여 비즈니스 규칙 세트를 통해서 이루어진다. 신청이 자동으로 거부된다면, 그 상태가 기록되고, 고객에게 공지가 보내진다. 신청이 자동으로 승인되면, 상태가 기록되고, 신용 카드 이행 프로세스가 시작되고, 고객에게 공지가 보내진다. 직접적인 승인이 필요하면, 제 2의 워크플로우(그림 2)가 시작된다.
그림 1. WBM에서의 신용 카드 신청 프로세스
주:
그림 1 크게 보기.
신용 카드 신청에 직접적인 승인이 필요하면, 은행 직원은 신청자와 상품과 관련한 추가 정보를 검토한다. 그리고 나서 은행 직원이 신청을 승인하거나 거부한다. 신청이 거부되면, 요청이 기록되고, 고객에게 공지가 간다. 신청이 승인되면, (비즈니스 규칙을 통해 이루어진) 결정을 통해 은행 매니저의 승인이 필요한지의 여부를 결정하게 된다. 필요하지 않다면, 신청 상태가 기록되고, 신용 카드 이행 프로세스가 시작되고, 공지가 고객에게 간다. 은행 매니저의 승인이 필요할 경우, 은행 직원의 승인이 기록되고, 신청 내용이 은행 매니저에게 라우팅 된다. 은행 매니저는 신청을 거절하거나 승인한다. 은행 매니저의 결정이 기록되고 공지가 고객에게 보내진다.
그림 2. 신용 카드 승인 프로세스
주:
그림 2 크게 보기.
베스트 프랙티스
이 섹션에서는 WBM V6을 사용하여 비즈니스 프로세스를 모델링, 조합, 전개하는 베스트 프랙티스를 소개한다.
효율적인 비즈니스 모델 조합 기술 사용하기
기존 비즈니스 프로세스를 변경해야 한다면 다음 중 한 가지를 수행한다.
- WBM을 사용하여 변경 사항을 모델링 및 시뮬레이트 한 다음, 그 프로세스를 위한 BPEL을 생성한다.
- 전개 가능한 생성물에 직접 변경 사항을 실행한다.
변경 사항이 미미한 경우, WID 내에서 BPEL 프로세스가 수정, 테스트, 전개될 수 있다. WID BPEL을 WBM으로 반입하는 기능은 현재는 없다. 따라서, WBM과 WID 모델을 연결하려면, WBM에서 모든 것을 수정한 후에, BPEL을 재생성 하여 WID에 적용해야 한다. BPEL에 대한 변경 사항이 WBM에서 모델의 흐름을 변화시키지 않는다면, WID에서 직접 수정하는 것이 최상의 방법이다. 비즈니스 프로세스를 많이 수정해야 하는 경우, BPEL 모델은 WBM에서 재생성 되어 WID로 반입되어야 한다. 여기에서부터, 프로세스 조합은 이전의 비즈니스 프로세스에서 온 기존 에셋들을 사용하게 된다.
중복 SCA 컴포넌트 피하기
프로세스 다이어그램에 Global 또는 Local 태스크를 사용할 수 있다. 같은 Global 태스크를 여러 번 사용하여 한 개 이상의 비즈니스 프로세스에 추가할 수 있다. 프로젝트 트리에서 프로세스 다이어그램으로 아이콘을 끌어오면 된다. 변형 프로세스 동안 Global 태스크를 위해 생성된 하나의 SCA 컴포넌트가 생긴다. 여러분이 프로세스 다이어그램 팔레트에서 이 다이어그램으로 다른 Local 태스크 아이콘들을 추가하여 같은 서비스의 여러 인스턴스를 나타낸다면, 그렇게 다른 Local 태스크 아이콘들이 같은 서비스를 실제로 나타내더라도, 변형 프로세스 동안에는 다른 태스크로 간주된다. 이 경우, 중복 SCA 컴포넌트들이 생겨난다. 그림 3에서, Credit Card Request 프로세스에 두 개의 Local Log Credit Card Request 태스크들이 있다. WBM의 변형 유틸리티는 각각의 Local 태스크를 다른 서비스로 간주하고, 이 유틸리티는 SCA 모듈에 있는 각각의 Local 태스크에 고유한 SCA 컴포넌트를 생성한다. 이 예제에서, 각각의 Local 로그 태스크는 SCA 컴포넌트를 만들어 낸다. 중복을 제거하려면 생성된 어셈블리 다이어그램의 구조를 직접 수정한다.
주: 최상의 결과를 위해서 비즈니스 분석가들은 재사용 가능한 비즈니스 태스크를 구분한 다음 그러한 태스크들을 WBM에서 Global 태스크로서 생성한다.
그림 3. 중복 SCA 컴포넌트
주:
그림 3 크게 보기.
WBM과 WID간 차이
프로세스를 BPEL 프로세스 구조로 변형하려면, WBM의 WebSphere Process Server 편집 모드로 비즈니스 프로세스를 모델링 한다. 이 모드에서 사용할 수 있는 모델링 엘리먼트 유형에 대한 제약 조건을 파악하여 프로세스가 BPEL에 호환되도록 한다. 다음 엘리먼트 유형들은 Process Server 모드에서는 사용할 수 없다.
- 비즈니스 아이템 인스턴스
- Do-while 루프
- For 루프
- 공지 브로드캐스터
- 공지 리시버
- 옵저버
- 글로벌 저장소
- 타이머
사용자 환경에서, 위에 제시한 일부 모델 엘리먼트 유형들을 사용해야 할 때가 있다. 순수 비즈니스 모델에 대한 차이를 설명하거나, WID에서 WBM 구조와 BPEL 프로세스를 처리해야 하는 경우이다. WBM Basic 모드에 있다면 위에 열거한 모든 엘리먼트들을 프로세스에 포함시킬 수 있다. Basic 모드에서의 프로세스는 순수한 비즈니스 프로세스이며, BPEL 또는 FDL for WebSphere MQ Workflow 같은 특정 기술에 대한 의존성도 없다. Basic 모드에서 WebSphere Process Server 모드로 전환할 때 위에 열거한 엘리먼트가 에러를 일으킬 것이다.
교훈
이 섹션에서는 WBM V6을 사용하여 비즈니스 프로세스를 모델링, 조합, 전개하면서 배웠던 교훈에 대해 설명한다.
WBM의 프로세스 의존성 지원
가끔씩, 또 다른 BPEL 프로세스에 의존하고 있는 BPEL 프로세스를 묘사해야 할 때가 있다. A 가 B를 서비스로서 호출한다. 글로벌 프로세스를 사용하여 WBM에서 이를 수행한다. 이들 간 종속 관계를 지정함으로써 두 개의 글로벌 프로세스를 연결한다. (그림 1의 프로세스 의존성 참조) WBM에는 하위 프로세스(sub-process) 개념이 있지만, 비즈니스 프로세스 내의 하위 프로세스는 개별 BPEL 프로세스 대신 부모 BPEL 프로세스 내부에 있는 플로우 구조로 변형된다. 또한, WBM의 Technical Attributes View에서 독립 BPEL 프로세스로 변형될 수 있는 프로세스로서 태스크를 지정할 수 있지만, WBM에서 독립 프로세스를 모델링 할 수 없다. 가끔씩, 모델링 될 수 있는 개별 BPEL 프로세스를 생성해야 한다. 그 BPEL 프로세스를 다른 시나리오에서 재사용 해야 하기 때문이다. 또는 BPEL 프로세스를 장기 실행 프로세스로 만들면서 이것의 부모 BPEL 프로세스가 단기 실행 프로세스여야 하는 경우도 있다. 이러한 유형의 의존성 관계에 글로벌 프로세스를 사용하라. 로컬 프로세스를 사용하고 있다면, 생성된 BPEL 프로세스 구조를 수정함으로써 변형 프로세스를 실행한 후에 종속 관계를 직접 만든다.
자바를 사용할 때 태스크 세분성 고려하기
WID는 자바™ 코드를 BPEL 프로세스에 삽입하는 기능을 지원한다. SCA 프로그래밍 모델 역시 SCA 컴포넌트용 구현 유형으로서 자바 아키텍처를 제공한다. 일반적으로, 간단한 계산 같이, BPEL 프로세스 안에 작은 기능이 필요하다면 자바 코드를 BPEL 프로세스 안에 삽입할 수 있다. 하지만, 자바 코드의 비즈니스 로직이 재사용 되어야 하거나 복잡하다면, BPEL 프로세스가 일반 SCA 서비스로서 참조하는 독립 자바 유형 SCA 컴포넌트 안에 이 로직을 둘 수 있다. WBM을 사용하여 프로세스를 모델링 하고, 프로세스를 BPEL 프로세스로 변형할 때, 각 태스크의 세분성을 고려하라. 한 태스크의 세분성이 합당하다면(간단한 기능을 수행한다면) WBM에서 map 엘리먼트를 사용하는데, 이는 생성된 BPEL 프로세스 구조에서 빈 자바 코드로 변형될 수 있다.
그림 4. 자바 코드 예제
그림 4에서, 하나의 Auto Approve the Request map 엘리먼트가 있다. 이 비즈니스 프로세스를 BPEL 구조로 반출한 후에, map 엘리먼트는 독립 SCA 컴포넌트 대신 생성된 BPEL 구조 안에 있는 자바로 변형될 것이다.
기술 애트리뷰트 뷰 사용하기
WBM의 기술 애트리뷰트 뷰(그림 5)는 프로세스, 글로벌 태스크, WPS의 서비스를 구현하는데 사용되는 기술 상세들을 지정하는 옵션을 제공한다. 이 뷰에 제공된 기능을 사용하여, 구현 태스크를 단순화 할 수 있다. WPS 반출을 사용하여 비즈니스 프로세스를 반출할 때 기본 값이 기술 애트리뷰트에 제공된다. 기술 애트리뷰트 뷰를 사용하여 값을 지정함으로써, 이러한 디폴트 값을 오버라이드 할 수 있다. 프로세스, 태스크, 서비스의 경우, 기술 애트리뷰트 뷰의 Implementation 페이지에는 엘리먼트의 SCA 정보가 포함되어 있다. 이 정보는 SCA 컴포넌트로서 엘리먼트를 구현하는데 사용된다. WPS 모델링 모드의 기술 애트리뷰트 뷰에 다섯 개의 구현 유형이 제공된다.
- 상태 머신
- 비즈니스 규칙 그룹
- 휴먼 태스크
- 자바
- 프로세스
예를 들어, 비즈니스 규칙 유형으로 태스크의 구현 유형을 선택했다면 WBM의 구체적인 비즈니스 규칙 요구 사항을 추가할 수 있다. WBM 프로젝트를 BPEL에 변형하고 프로젝트를 WID에 반입할 때 원래의 WBM 태스크는 WBM에 추가된 같은 요구 사항 설명과 함께 Business Rule Group 컴포넌트로 변형된다. 그리고 나서, WID에서 비즈니스 규칙 세트를 디자인하여 그러한 요구 사항들을 실현할 수 있다.
그림 5. 기술 애트리뷰트 뷰
주:
그림 5 크게 보기.
휴먼 태스크는 특별한 경우이다. 변형 프로세스를 실행한 후에, 이 태스크는 독립적인 휴먼 태스크 컴포넌트로 변형된다. 독립적인 휴먼 태스크가 필요하지 않다면, 구현 유형을 기술 애트리뷰트 뷰에 none으로 남겨두고, 애트리뷰트 뷰로 가서 하나의 staff 역할을 이 태스크에 할당한다. 변형 프로세스 후에, 태스크는 독립적인 휴먼 태스크 컴포넌트가 아닌 삽입된 휴먼 태스크로 변형될 것이다.
WID BPEL 프로세스 생성하기
WID에 Credit Card Request와 Credit Card Approval 프로세스를 생성하려면(그림 6), 반출 및 변형 마법사를 실행하여 신용 카드 신청과 승인 BPEL 구조를 생성한다. 그런 다음, 코드를 BPEL 구조에 맞게 조정하여 추가한다. 이렇게 하면 WPS 6에 전개할 수 있는 프로세스가 만들어 진다.
그림 6. WID 프로세스
주:
그림 6 크게 보기.
요약
지금까지 WBM V6를 사용하여 프로세스 모델링 작업을 하면서 배웠던 베스트 프랙티스, 결함, 교훈 등을 설명했다.
- 베스트 프랙티스
- 효율적인 비즈니스 모델 어셈블리 기술을 사용한다.
- 중복 SCA 컴포넌트를 피한다.
- WBM과 WID 간 차이
- 교훈
- WBM의 프로세스 의존성 지원
- 자바를 사용할 때 태스크 세분성 고려
- 기술 애트리뷰트 뷰 사용하기
참고자료 교육
제품 및 기술 얻기
-
IBM 제품 평가판 다운로드 : DB2®, Lotus®, Rational®, Tivoli®, WebSphere®의 애플리케이션 개발 툴 및 미들웨어 제품.
토론
필자소개  | 
|  | Qiang Wang은 China Technology Institute, China Software Development Laboratory의 소프트웨어 엔지니어이다. IBM 인큐베이터 프로젝트와 SOA 관련 토픽을 중점적으로 다루고 있다. J2EE, SOA, MDA/MDD, AOP, RUP 등에 관심을 갖고 있다. 현재 WBM, WebSphere Integration Developer, WPS와 관련된 개발 작업을 수행하고 있다. |
 | 
|  | Mary Taylor는 소프트웨어 엔지니어이다. Strategic Technology Architecture and Incubation 팀에서 일하고 있으며, 현재 SOA CBS 파일럿 작업 중이다. DB2와 DataStage에 관심을 갖고 있다. |
기사에 대한 평가
|  |