4장. 논리 인터페이스 정의
초록
논리 서비스 인터페이스는 portType
요소를 사용하여 정의됩니다.
4.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
논리 서비스 인터페이스는 WSDL portType
요소를 사용하여 정의됩니다. portType
요소는 추상 작업 정의 컬렉션입니다. 각 작업은 작업이 나타내는 트랜잭션을 완료하는 데 사용되는 입력, 출력 및 오류 메시지에 의해 정의됩니다. portType
요소에서 정의한 서비스 인터페이스를 구현하기 위해 코드가 생성되면 각 작업은 계약에 지정된 입력, 출력 및 오류 메시지에 정의된 매개 변수를 포함하는 메서드로 변환됩니다.
4.2. 프로세스 링크 복사링크가 클립보드에 복사되었습니다!
WSDL 계약에 논리 인터페이스를 정의하려면 다음을 수행해야 합니다.
4.3. 포트 유형 링크 복사링크가 클립보드에 복사되었습니다!
WSDL portType
요소는 논리 인터페이스 정의의 root 요소입니다. 많은 웹 서비스 구현은 portType
요소를 생성된 구현 오브젝트에 직접 매핑하지만 논리 인터페이스 정의는 구현된 서비스에서 제공하는 정확한 기능을 지정하지 않습니다. 예를 들어, ticketSystem이라는 논리 인터페이스는 구현 결과를 초래할 수 있으며, 구현 결과를 얻을 수 있습니다.
portType
요소는 정의된 서비스를 노출하는 끝점에서 사용하는 물리적 데이터를 정의하기 위해 바인딩에 매핑되는 WSDL 문서의 단위입니다.
WSDL 문서의 각 portType
요소에는 name
특성을 사용하여 지정되고 작업 요소에 설명된 작업
컬렉션으로 구성된 고유한 이름이 있어야 합니다. WSDL 문서는 임의의 수의 포트 유형을 설명할 수 있습니다.
4.4. 작업 링크 복사링크가 클립보드에 복사되었습니다!
WSDL 작업 요소를 사용하여 정의된 논리 작업은
두 끝점 간의 상호 작용을 정의합니다. 예를 들어, 계정 밸런스 확인 요청과 위젯의 Gross에 대한 주문은 둘 다 작업으로 정의할 수 있습니다.
portType
요소 내에 정의된 각 작업에는 name 특성을 사용하여 지정된 고유한 이름이
있어야 합니다. name
속성은 작업을 정의하는 데 필요합니다.
4.5. 작업 메시지 링크 복사링크가 클립보드에 복사되었습니다!
논리 작업은 작업을 실행하기 위해 끝점 간에 전달되는 논리 메시지를 나타내는 일련의 요소로 구성됩니다. 작업을 설명할 수 있는 요소는 표 4.1. “작업 메시지 요소” 에 나열됩니다.
element | 설명 |
---|---|
| 요청 시 클라이언트 끝점이 서비스 공급자에게 보내는 메시지를 지정합니다. 이 메시지의 일부는 작업의 입력 매개 변수에 해당합니다. |
| 서비스 공급자가 요청에 대한 응답으로 클라이언트 끝점에 전송하는 메시지를 지정합니다. 이 메시지의 일부는 참조로 전달된 값과 같이 서비스 공급자가 변경할 수 있는 모든 작업 매개변수에 해당합니다. 여기에는 작업의 반환 값이 포함됩니다. |
| 끝점 간 오류 상태를 전달하는 데 사용되는 메시지를 지정합니다. |
입력
또는 하나의 출력
요소를 하나 이상 보유하려면 작업이 필요합니다. 작업에는 input
및 output
요소가 모두 있을 수 있지만 각 요소 중 하나만 있을 수 있습니다. fault
요소가 필요한 것은 아니지만 필요한 경우 여러 fault
요소가 있을 수 있습니다.
요소에는 표 4.2. “입력 및 출력 요소의 속성” 에 나열된 두 가지 속성이 있습니다.
속성 | 설명 |
---|---|
| 작업을 구체적인 데이터 형식으로 매핑할 때 참조할 수 있도록 메시지를 식별합니다. 이름은 enclosing 포트 유형 내에서 고유해야 합니다. |
|
전송 또는 수신 중인 데이터를 설명하는 추상 메시지를 지정합니다. |
모든 입력
및 출력
요소에 대한 name
속성을 지정할 필요는 없습니다. WSDL은 enclosing 작업의 이름을 기반으로 기본 이름 지정 체계를 제공합니다. 작업에 하나의 요소만 사용되는 경우 요소 이름은 기본적으로 작업 이름으로 설정됩니다. 입력
과 출력
요소가 모두 사용되는 경우 요소 이름은 기본적으로 Request
또는 Response
가 이름에 각각 추가된 작업의 이름으로 설정됩니다.
4.6. 반환 값 링크 복사링크가 클립보드에 복사되었습니다!
작업 요소는 작업
중에 전달된 데이터의 추상적 정의이므로 WSDL은 작업에 대해 지정된 반환 값을 제공하지 않습니다. 메서드가 값을 반환하는 경우 해당 메시지의 마지막 부분으로 출력
요소에 매핑됩니다.
4.7. 예 링크 복사링크가 클립보드에 복사되었습니다!
예를 들어 예 4.1. “personalInfo 조회 인터페이스” 에 표시된 인터페이스와 유사한 인터페이스가 있을 수 있습니다.
예 4.1. personalInfo 조회 인터페이스
interface personalInfoLookup { personalInfo lookup(in int empID) raises(idNotFound); }
interface personalInfoLookup
{
personalInfo lookup(in int empID)
raises(idNotFound);
}
이 인터페이스는 예 4.2. “personalInfo 조회 포트 유형” 의 포트 유형에 매핑할 수 있습니다.
예 4.2. personalInfo 조회 포트 유형