IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  웹서비스 | WebSphere  >

웹 서비스를 구현하는 SOA 프로그래밍 모델, Part 8: 인간 기반의 웹 서비스

developerWorks
문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.

토론


난이도 : 중급

Matthias Kloppmann, Senior Technical Staff Member, IBM
Stefan Liesche, WebSphere Portal and Workplace Foundation Lead Architect, IBM
Gerhard Pfau, Senior Technical Staff Member, IBM
Marcia Stockton, Senior Technical Staff Member, IBM

2005 년 10 월 21 일

서비스에 사람이 개입한다는 것은 비교적 새로운 서비스 지향 아키텍처(SOA)의 측면이다. 비즈니스 내에서 사람이 작업을 하고 인터랙팅 하는 방법까지 소프트웨어가 모델링 한다. IBM WebSphere ® Process Server의 Human Task가 제공하는 여러 기능들을 설명하고 포탈에서 어떻게 사용되는지도 설명한다.

서비스 지향 아키텍처의 사용자 인터페이스

비즈니스 프로세스의 총체적인 자동화는 바람직하긴 하지만 실제로는 실현 불가능하다. 왜냐하면 예외적 상황이나 요청 승인 같은 인간의 판단이나 전문성을 필요로 하는 특정 작업은 언제나 사람들이 수행하기 때문이다. 전체적인 비즈니스 프로세스의 정황에서 휴먼 태스크는 다른 여타의 태스크와 비슷한 서비스이다. 다만, (프로그램 대신) 사람의 작업에 의해 이루어지고 (컴퓨터 대신) 사람이 수행한다는 점만 빼면 말이다.

따라서 SOA 프로그래밍 모델에서 인간 작업은 웹 서비스로서 실현될 수 있다. 서비스가 호출되면, 서비스는 개별 태스크들을 공지하여 적절한 형태로 인풋 데이터를 수행 및 전달한다. 태스크가 완료되고 결과가 생기고 나면 서비스는 호출자에게 결과를 전달한다. 사람들이 개입한 작업은 호출자에게 투명하게 드러난다. 이 시나리오는 장기 실행 서비스를 지원하는 비동기식 호출을 적용하고 있다. 원격 프로시저 호출(RPC) 스타일의 동기식 호출은 휴먼 태스크(또는 기타 장기 실행 서비스)에는 적합하지 않다.

휴먼 태스크를 웹 서비스로서 만들면 추가적인 이점이 있다. 자동화 되지 않은 비즈니스 프로세스를 재 코딩 하지 않고 인간 구현으로 대체될 수 있다. 이것은 인간 작업자들이 소프트웨어로 취급된다거나, 미래의 컴퓨터들이 인간을 노예로 부려먹는다는 것을 의미하는 것은 아니다. 오히려, 인간 구현 작동을 웹 서비스로서 모델링 하는 것이 합당한 디자인 선택이 될 수 있다는 것이다. 두 개의 분리된 구성 시퀀스가 연결되지 않은 채, 비즈니스 프로세스 구성에서 여러 단계들을 수행하다가 휴먼 태스크가 필요할 때마다 단순히 멈추고 다음 단계에 구성을 다시 시작한다는 이 대안은 분명한 단점을 품고 있기 때문이다.

보험 청구 프로세스를 생각해 보자. 프로세스의 어디에선가 청구자에게 보상금을 지급하기 전에 청구건은 승인되어야 한다. 이러한 기본적인 형태에서는 사람이 청구 정보를 받고 청구를 승인할 것인지, 거절할 것인지, 조정자를 개입시킬 것인지를 결정한다. 이 단계는 전체적인 비즈니스 흐름을 바꾸지 않고 서비스로 대체될 수 있다. 보다 복잡한 결정들을 인간에게 위임하고 일반적이고 사소한 승인작업은 자동화하는 것이다. 아주 기본적인 작업에서 해방된 인간 전문가들은 자신만이 수행할 수 있는 일에 집중할 수 있다. 이로서 비즈니스 결과와 작업자의 만족도를 높일 수 있는 것이다.

휴먼 태스크를 웹 서비스로 만드는 것이 언제나 바람직한 것은 아니다. 보다 복잡한 프로세스를 생각해 보자. 두 명의 다른 사람들이 하나의 요청을 승인해야 한다. (이는 네 개의 눈 원리 또는 의무의 분리로 알려져 있다.) 이 같은 태스크는 모호한 웹 서비스가 아닌 명확한 휴먼 태스크를 필요로 한다.

Business Process Execution Language for Web services의 BPEL4People 확장은 비즈니스 태스크에 휴먼 태스크를 삽입시키는데 필요한 확장성 제공한다. 또한 휴먼 태스크가 BPEL 프로세스 또는 자바로 작성된 프로그램에서 호출될 수 있는 독립형 스탠드얼론 웹 서비스로 랜더링 되는 상황까지 다룬다.

다음 섹션에서 휴먼 태스크를 위한 프로그래밍 모델을 설명한다.




위로


휴먼 태스크(Human tasks)

휴먼 태스크 컴포넌트 유형은 휴먼 태스크를 구현하여 비즈니스 프로세스와 임의의 서비스 구성에 사람들이 개입할 수 있도록 하고있다. 휴먼 태스크는 Human Task Manager 내에서 이루어진다. Human Task Manager는 WebSphere Process Server에서 제공하는 휴먼 태스크를 위한 특별한 컨테이너이다.

이러한 사용 시나리오를 지원하기 위해, 휴먼 태스크는 정확히 하나의 작동을 가진 간단한 인터페이스를 갖고 있다. 이 연산은 인풋 메시지, 아웃풋 메시지, 오류 메시지 등을 갖고 있다. 그림 1은 승인 태스크의 인터페이스 모습이다.


그림 1. Approval Task 인터페이스

display name, description, documentation 등이 속성으로 지정된다. display name은 사람들이 읽고 이해할 수 있는 작업명이다. 태스크 리스트 상에 있는 태스크를 나타낸다. 예를 들어, 승인 태스크에는 Credit Approval이라는 이름이 붙여진다. description은 무엇에 관한 태스크인지 어떤 종류의 일을 수행하는지를 요약한 것이다. documentation 속성은 보다 제세한 정보를 제공한다. 각 속성들은 여러 가지 언어로 렌더링 되어 다양하고 다국적인 작업을 실행할 수 있도록 한다.

태스크는 또한 누가 무슨 일을 수행할지에 대한 제어권을 갖는다. 비즈니스 관점에서 볼 때, 적임자만이 승인 작업을 수행할 수 있다. 기업의 인력 디렉토리에 모든 승인자들이 승인자 그룹에 속해있을 경우 승인 태스크의 최종 책임자에 대한 정의가 내려져야 한다.


그림 2. Approval Task 스태프 설정

(주: 이 스크린은 휴먼 태스크를 처음 정의할 때 개발자나 비즈니스 프로세스 분석가만이 볼 수 있다. 태스크를 수행하는 사람들은 볼 수 없다. )

사람에 대해 여러 역할들이 정의될 수 있다. 소유자(owners)들은 해당 태스크를 수행하는 적임자들이다. 한 명 이상의 관리자(administrators)들이 태스크 관리를 책임진다. 소유자와 관리자 외에 또 다른 사람들은 태스크 데이터를 읽거나 편집하는 권한을 가질 수 있다. 마지막으로 태스크 인스턴스를 만드는 권한을 가진 사람들 역시 지정된다.

스태프를 설정해놓으면 런타임 시, Lightweight Directory Access Protocol(LDAP) 쿼리를 수행하거나 WebSphere 사용자 레지스트리로 요청을 보내서 기업의 인력 디렉토리에서 적임자들을 검색하는데 사용된다.

고객과의 서비스 레벨 계약(SLA)에는 비즈니스 프로세스가 시간 제약조건을 준수하도록 규정되어 있다. 휴먼 태스크 프로세스가 너무 느려 SLA를 위반한다면 Human Task Manager는 에스컬레이션 공지를 보낼 수 있다. 각 태스크 마다 에스컬레이션 설정을 갖고 있다. 그림 3은 승인 태스크에 대한 에스컬레이션 설정 모습이다.


그림 3. Approval Task 에스컬레이션 설정

타이머와 비슷한 에스컬레이션은 다른 태스크에도 정의될 수 있다. 태스크가 일정 상태에 도달하면 시작되는 에스컬레이션은 지정된 기간이 경과되지 않는 한 아무것도 수행하지 않는다. 태스크가 기대한 대로 처리되면 에스컬레이션은 취소된다. 처리되지 않을 경우는 에스컬레이션이 이전에 정의한 액션을 실행하게 된다.

그림 3 예제에서 태스크가 준비될 때 에스컬레이션이 스케줄링 된다. 다시 말해서 태스크가 시작한 후에 스케줄링 된다. 특정 시간이 지난 후에 어떤 소유자도 태스크를 요청하지 않으면 에스컬레이션은 실행되고, 소유자에게 이메일을 통해 작업이 대기중이라는 공지를 보낸다.

소유자가 승인 태스크를 요청한 후에 에스컬레이션 체인이 활성화 된다. 요청된 태스크가 제시간에 완료되지 못한다면 에스컬레이션 체인이 관리 체인에 공지를 보낸다. 이것을 통해 비즈니스 관리자는 태스크를 다른 누군가에게 재할당하게 된다.

휴먼 태스크는 사용자의 개별적인 작업 리스트에 나타난다. 사용자는 자신이 봐야 할 태스크만 본다. 많은 사용자와 동시 태스크를 가진 큰 애플리케이션의 경우 사용자는 기준에 따라 태스크 리스트를 조정해야 한다. 태스크 리스트는 이름, 우선순위, 비즈니스 중요성에 따라 정렬될 수 있다. 정렬과 필터링을 활용하면 태스크 유형과 사용자 속성(이름-값 쌍)도 정의할 수 있다.

오늘날 기업에서 포탈은 사람과 IT 시스템을 연결하는데 널리 사용되고 있다. 사원들은 포탈의 사용자 인터페이스(UI)를 통해 작업을 수행하고, 동료와 협업하며, 사용자, 파트너, 공급자들과 인터랙팅한다. 포탈 UI와 결합된 휴먼 태스크는 비즈니스 프로세스에 인간이 참여할 수 있는 효율적인 방법을 제공한다.


그림 4. 태스크 리스트 포틀릿

통합된 포탈 환경에서, 태스크 리스트에 접근할 수도 있고(그림 4), 태스크를 수행할 수도 있다. 각 태스크와 연결된 포탈 관리자들이 정의한 태스크 페이지들이 있다. 사용자들은 태스크 리스트에 있는 태스크를 클릭하면 그러한 페이지들을 간단히 검색할 수 있다.


그림 5. 포탈 태스크 UI 설정

포탈은 링크를 태스크로 전달하여 사용자가 작업할 때만 제휴 된 태스크 페이지를 시작한다. 포틀릿에 태스크 페이지 레퍼런스를 제공한다. 포틀릿은 검색용 링크를 디스플레이하고 레퍼런스를 사용하여 태스크와 관련된 정보를 가져오고 그 결과를 휴먼 태스크로 리턴한다.

사용자들은 같은 유형 또는 다른 유형의 다양한 태스크들에 대해 여러 태스크 페이지를 시작할 수 있다. 사용자가 하나의 태스크를 완료하면 그 태스크 페이지는 사용자 검색에서 자동으로 사라진다. 사용자는 요청에 따라 태스크 페이지들을 닫고 재시작 할 수 있다. 사용자 세션이 끝나면 모든 태스크 페이지들은 닫힌다.

태스크를 수행하는 사용자들은 포탈에서 제공하는 협업 기능을 활용할 수 있다. 인스턴트 메시징, 사용자 프로파일 등을 사용할 수 있다. 예를 들어, 협업 기능을 사용할 경우, Human Task Manager은 관련 태스크를 수행하는 다른 동료 목록을 제공한다. (그림 6)


그림 6. 태스크 페이지

태스크 페이지에는 여러 유형의 포틀릿들이 배치된다. 태스크-프로세싱 포틀릿은 사용자를 태스크에 연결한다. 사용자에게 디스플레이 할 태스크 인풋 메시지를 가져와서 태스크 아웃풋 메시지로서 사용자가 입력한 데이터를 제공한다. 태스크-프로세싱 포틀릿(그림 7)은 태스크 인터페이스 스팩에서 자동으로 생성될 수 있다. (그림 1)


그림 7. 프로세스 포틀릿 개발 위자드

지원 포틀릿은 태스크를 완료하는데 필요한 정보들을 사용자가 모을 수 있도록 한다. 이들은 태스크와 직접 인터랙팅하지 않지만 협업 포틀릿 기능을 사용하여 태스크 페이지 상의 태스크-프로세싱 포틀릿과 인터랙팅 한다.




위로


요약

인간 기반의 웹 서비스는 서비스 지향 애플리케이션에서 서비스 구현으로서 인간을 포함시키는 기능을 제공한다. WebSphere Process Server에서 도입한 휴먼 태스크는 인간 기반 웹 서비스의 토대이다. 기본적인 인간의 작업 시스템에 기반하고 있고, 기능을 확장하여 고급의 에스컬레이션과 공지 기능까지 이르고, 휴먼 태스크를 위한 WebSphere Portal 기반의 사용자 인터페이스까지 지정한다. 자세한 정보는 "서비스 지향 사용자 인터페이스"를 참조하기 바란다.

휴먼 태스크 개념은 산업계에서 인식하고 있고, 표준화 작업도 진행중이다. IBM과 SAP의 공동 작업을 통해 휴먼 태스크에 대한 표준화 방향이 정해질 것이다. (참고자료) WS-BPEL 표준 확장에는 비즈니스 프로세스에 인간을 개입시키는 문제가 다루어질 예정이다. (참고자료)

이 글에서는 비즈니스 프로세스와 서비스 지향 애플리케이션 정황에서, 인간 기반의 서비스 구현의 수단으로서 휴먼 태스크를 설명했다. 보다 클라이언트 중심의 사용 시나리오도 있지만 이 글의 범위를 벗어난다. "서비스 지향 사용자 인터페이스"에서는 이 글에서 다루지 못했던 여러 가지 시나리오들이 언급되어 있다.




위로


참고자료

교육

토론



위로


필자소개

Author photo

Matthias Kloppmann, Senior Technical Staff Member, IBM


Author photo

Stefan Liesche, WebSphere Portal and Workplace Foundation Lead Architect, IBM


Author photo

Gerhard Pfau, Senior Technical Staff Member, IBM


Author photo

Marcia Stockton, Senior Technical Staff Member, IBM





위로


기사에 대한 평가

매우 불만족 (1)
불만족 (2)
보통 (3)
만족 (4)
매우 만족 (5)




위로



    IBM 소개개인정보 보호정책문의