SOA 복합 비즈니스 서비스 구현하기, Part 10: 서비스 거버넌스 WebSphere Process Server와 WebSphere Service Registry and Repository를 사용한 소비 (한글) |
난이도 : 중급 Ying Chun Guo , Software Engineer, IBM 2007 년 10 월 09 일 일반적으로 SOA 거버넌스의 초점은 서비스 라이프사이클의 관점에서 서비스 공급자 측에 맞춰졌습니다. 소비자나 등록자(subscriber) 측에는 관심이 덜했습니다. 관련 서비스 엔드포인트를 보고 발견하는 것은 과연 누구일까요? 서비스를 발견한 누군가가 그 서비스를 소비하기 위해 어떻게 요청을 보내야 할까요? 서비스에 액세스 할 때 권한 문제는 어떻게 되나요? 이러한 질문에 대한 대답은 고객들 마다 다릅니다. 이 글에서는 Jivaro Bank라고 하는 가상의 프로토타입 복합 애플리케이션의 정황에서 이러한 질문들에 대한 해답을 제시합니다. 또한, WebSphere Service Registry and Repository 와 WebSphere?? Process Server가 서비스 소비와 등록에 대한 거버넌스를 확립하는데 어떻게 사용되는지도 설명합니다. Jivaro Bank는 가상의 프로토타입 복합 애플리케이션으로서, 커스터마이징 된 WebSphere Service Registry and Repository 즉 Jivaro Bank Service Registry에 뱅킹 서비스를 공개한다. 이러한 서비스들은 내부 고객들에 의해 사용된다. (내부 고객들이라 함은 사용자 레지스트리에 사용자 계정이 있는 사람들이다.) 본 시리즈 첫 번째 기술자료, "SOA 복합 비즈니스 서비스 구현하기, Part 1: 비즈니스 서비스를 수행할 SOA 복합 애플리케이션을 개발하기" 에서는 Jivaro 뱅킹 애플리케이션이 지원하는 시나리오를 소개했다. Jivaro Bank 보안 인프라스트럭처는 Tivoli?? Directory Server 기반 LDAP 사용자 레지스트리를 인증에 사용한다. 인증을 위해서, WebSphere Portal 프론트엔드와 WebSphere Process Server 백엔드를 위한 권한-정책 결정 포인트로서 Tivoli Access Manager를 사용한다. 내부 고객이 Jivaro 뱅크 서비스를 런타임 시 호출하기 전에, 인증을 받아야 하고, 서비스 고객과 공급자간 계약에 명시된 조건에 동의해야 한다. 등록자와 소비자 측 거버넌스를 위해서, Jivaro Bank는 다음과 같은 정책들을 만들었다.
이 글에서는 이러한 정책들이 WebSphere Process Server와 WebSphere Service Registry and Repository를 사용하여 Jivaro Bank에서 어떻게 구현되는지를 설명한다. 그림 1은 잠재적 등록자인 James Hu가 공개된 Jivaro 은행 서비스(이 경우, automated check clearing을 위한 Jivaro Bank Batch ACH Service)를 그의 비즈니스 프로세스(Accounts Payable Process)에서 호출하는 상황을 보여준다. 우선, 공개된 서비스에 등록한다. 관리자에 의해 등록이 승인된 후에, 이 서비스용 공개 엔드포인트를 찾고 이를 비즈니스 프로세스에서 사용할 수 있다. Accounts Payable Process 에서 온 호출은 Jivaro Bank Batch ACH Service Mediation Module을 통해 라우팅 되는데, 이는 호출을 다양한 기준에 근거하여 비밀 엔드포인트들 중 하나로 라우팅 한다. 중개 모듈은 일괄 요청에서 체크의 수를 이러한 요청이 라우팅 될 내부 엔드포인트를 결정하는 기준으로 사용한다. WebSphere Service Registry and Repository에서 WESB 중개 모듈을 사용하는 방법은 참고자료를 참조하라. Jivaro Bank는 Jivaro 서비스 레지스트리에 두 개의 내부 엔드포인트를 등록했다.
그림 1. Jivaro 뱅크 서비스 등록자 인증 프로세스 개요
이 시나리오에는 네 개의 다른 역할들이 있다. 뷰어(Viewer), 등록자(Subscriber), 서비스 공급자(Service Provider), IT 관리자(IT Administrator)가 있다. (그림 2) 그림 2. Jivaro 등록자 권한 거버넌스 프로세스의 유스 케이스와 액터(actor) Jivaro Bank 사용자 레지스트리에 이미 사용자 아이디를 갖고 있는 내부 고객은 Jivaro Bank Service Registry의 뷰어가 될 수 있다. Jivaro Bank 서비스 레지스트리에 로그인 한 후에, 뷰어는 등록에 사용할 수 있는 모든 서비스들을 볼 수 있다. (그림 3) 그림 3. Jivaro Bank 서비스 레지스트리의 뷰어 퍼스펙티브 뷰어는 서비스를 선택하고 선택된 서비스에 대한 기본적인 정보(버전, 비즈니스 소유자, 디스크립션)를 볼 수 있다. 뷰어와 관련이 있는 서비스의 경우, 뷰어는 그 서비스에 등록할 수 있다. (그림 4) 그림 4. Jivaro Bank 서비스 레지스트리에서 선택된 서비스에 대한 상세한 뷰를 보여주는 뷰어 퍼스펙티브 공개된 서비스에 등록하면서, 뷰어는 Jivaro Bank 서비스 레지스트리에 사전 등록된 계약서 템플릿의 인스턴스를 만들어야 한다. (그림 5) 그림 5. Jivaro Bank 서비스 레지스트리에 Jivaro Bank Batch ACH Service 계약서 템플릿의 인스턴스 만들기 계약서 템플릿의 인스턴스를 만들 때, 뷰어는 계약서의 여러 아이템들에 대한 값을 제공해야 한다. 요청 시 최대 체크의 수, 시간 당 최대 호출의 수, 예상 응답 시간, 담당자 이메일 등이 필요하다. (그림 6) 이 정보는 용량 플래닝을 수행하는 관리자와 관련이 있다. 그림 6. 서비스 레지스트리의 계약서 템플릿에서 인스턴스화 된 Jivaro Bank Batch ACH Service 계약서 엘리먼트 뷰어가 요청을 제출하여 서비스에 등록한 후에, Jivaro Bank 서비스 레지스트리는 등록자 권한 프로세스라고 하는 프로세스를 자동으로 호출한다. (그림 7) 이 프로세스는 WebSphere Process Server의 인스턴스에서 실행된다. 그림 7. Jivaro Bank 서비스 레지스트리와 연결된 등록자 권한 프로세스 그림 7 크게 보기.
등록자 권한 프로세스의 첫 번째 태스크는 서비스 공급자 역할을 위한 휴먼 태스크이다. (그림 8) 서비스 공급자는 서비스의 비즈니스 소유자이다. 여기에서, 서비스 공급자는 Batch ACH Service Contract의 잠재적 등록자가 지정한 예상 응답 시간으로 시간 당 최대 요청 수를 처리하는 서비스 인프라스트럭처의 기능을 검사한다. 기능이 타당하다면 요청이 승인된다. 서비스 공급자는 요청에서 다른 내부 엔드포인트와 연관된 비용도 제공한다. 그림 8. 등록 요청을 승인하고 Jivaro Bank Batch ACH Service 비용을 제공하는 서비스 공급자를 위한 휴먼 태스크 다음 태스크는 뷰어가 서비스 공급자가 제공한 비용을 수락하는 태스크이다. 뷰어가 비용을 승인한 후에, 계약 정의(서비스 공급자와 뷰어 간)가 서비스 레지스트리에 생성된다. 다음 태스크는 뷰어가 Jivaro Bank 서비스 레지스트리에서 등록된 서비스에 대한 공개 엔드포인트들을 볼 수 있도록 권한을 부여하는 IT 관리자 역할이다. 그 다음 태스크 역시 IT 관리자 역할로서, 뷰어가 원하는 서비스를 다시 호출할 수 있도록 권한을 부여한다. LDAP 사용자 레지스트리에, 뷰어에 대한 사용자 계정을 적절한 역할(ACHServiceSubscriberRole)에 추가함으로써 이를 수행한다. 마지막 태스크에서, IT 관리자는 뷰어가 생성했던 이메일 주소를 사용하여 WebSphere Service Registry and Repository에 등록 기록을 생성한다. Jivaro Bank 서비스 레지스트리의 서비스 레코드에서 애트리뷰트가 변경될 때, 이 등록 기록이 뷰어에게 자동으로 알려진다. 이것으로 등록자 권한 프로세스가 끝나고, 뷰어는 등록자의 역할로 이동할 수 있다. 다음에는, 뷰어가 Jivaro Bank 서비스 레지스트리에 로그인 하여 등록된 서비스의 상세(공개 엔드포인트와 종속 서비스들)를 더욱 자세히 볼 수 있다. 등록자 역시 Tivoli Access Manager 기반 권한 정책 결정 포인트에서 등록된 서비스를 호출하는 권한이 주어진다.
이 글에서는 Jivaro Bank 가상 시나리오를 통해서 WebSphere Process Server와 WebSphere Service Registry and Repository를 사용하여 등록자 측 서비스 거버넌스를 구현하는 방법을 설명했다. WebSphere Service Registry and Repository가 역할 기반 액세스 컨트롤을 어떻게 제공하는지, 서비스와 계약서 같은 서비스 관련 엔터티들을 관리하는데 이것이 어떻게 사용되는지를 배웠다. 또한, WebSphere Process Server가 WebSphere Service Registry and Repository를 확장하는 방법과, 등록자 권한 프로세스 같이 휴먼 워크플로우를 구현하는 방법도 설명했다. 본 시리즈의 다음 글에서는 이러한 솔루션을 더욱 자세히 설명하고자 한다. WebSphere Service Registry and Repository 커스터마이징, WebSphere Service Registry and Repository와 WebSphere Process Server 통합, WebSphere Integration Developer의 워크플로우와 관련 사용자 인터페이스 개발에 대해 자세히 설명할 것이다. |