4장. 논리 인터페이스 정의

초록

논리 서비스 인터페이스는 portType 요소를 사용하여 정의합니다.

4.1. 개요

논리 서비스 인터페이스는 WSDL portType 요소를 사용하여 정의합니다. portType 요소는 추상 작업 정의의 컬렉션입니다. 각 작업은 작업에서 나타내는 트랜잭션을 완료하는 데 사용되는 입력, 출력 및 오류 메시지에 의해 정의됩니다.Each operation is defined by the input, output, and fault messages used to complete the transaction the operation represents. portType 요소에서 정의한 서비스 인터페이스를 구현하기 위해 코드가 생성되면 각 작업은 계약에 지정된 입력, 출력 및 오류 메시지에 정의된 매개 변수를 포함하는 메서드로 변환됩니다.

4.2. 프로세스

WSDL 계약에서 논리 인터페이스를 정의하려면 다음을 수행해야합니다.

  1. interface 정의를 포함하도록 portType 요소를 만들고 이를 고유한 이름을 지정합니다. “포트 유형” 을 참조하십시오.
  2. 인터페이스에 정의된 각 작업에 대해 작업 요소를 생성합니다. “작업” 을 참조하십시오.
  3. 각 작업에 대해 작업의 매개 변수 목록, 반환 유형 및 예외를 나타내는 데 사용되는 메시지를 지정합니다. “작업 메시지” 을 참조하십시오.

4.3. 포트 유형

WSDL portType 요소는 논리 인터페이스 정의의 루트 요소입니다. 많은 웹 서비스 구현에서는 portType 요소를 생성된 구현 오브젝트에 직접 매핑하지만, 논리 인터페이스 정의는 구현된 서비스에서 제공하는 정확한 기능을 지정하지 않습니다. 예를 들어, ticketSystem이라는 논리적 인터페이스는 콘서트 티켓을 판매하거나 주차 티켓을 발행하는 구현을 초래할 수 있습니다.

portType 요소는 정의된 서비스를 노출하는 엔드포인트에서 사용하는 물리적 데이터를 정의하기 위해 바인딩에 매핑되는 WSDL 문서의 단위입니다.

WSDL 문서의 각 portType 요소에는 name 특성을 사용하여 지정된 고유한 이름이 있어야 하며 작업 요소에 설명된 작업 컬렉션으로 구성되어 있습니다. WSDL 문서는 모든 수의 포트 유형을 설명할 수 있습니다.

4.4. 작업

WSDL 작업 요소를 사용하여 정의하는 논리적 작업 에서는 두 끝점 간의 상호 작용을 정의합니다. 예를 들어, 검사 계정 균형을 위한 요청과 위젯의 그라스에 대한 주문은 모두 동작으로 정의될 수 있습니다.

portType 요소 내에 정의된 각 작업에는 name 특성을 사용하여 지정된 고유한 이름이 있어야 합니다. 작업을 정의하는 데 name 속성이 필요합니다.

4.5. 작업 메시지

논리 작업은 작업을 실행하기 위해 끝점 간에 전달되는 논리 메시지를 나타내는 요소 집합으로 구성됩니다. 작업을 설명할 수 있는 요소는 표 4.1. “작업 메시지 요소” 에 나열되어 있습니다.

표 4.1. 작업 메시지 요소

요소설명

input

요청이 수행될 때 클라이언트 끝점에서 서비스 공급자로 보내는 메시지를 지정합니다.Specifies the message the client endpoint sends to the service provider when a request is made. 이 메시지의 일부는 작업의 입력 매개변수에 해당합니다.

출력

서비스 공급자가 요청에 대한 응답으로 클라이언트 끝점으로 보내는 메시지를 지정합니다. 이 메시지의 일부는 참조로 전달된 값과 같이 서비스 공급자가 변경할 수 있는 모든 작업 매개변수에 해당합니다. 여기에는 작업의 반환 값이 포함됩니다.

fault

끝점 간에 오류 조건을 전달하는 데 사용되는 메시지를 지정합니다.

하나 이상의 입력 또는 하나의 출력 요소가 있어야 하는 작업입니다.An operation is required to have at least one input or one output element. 작업에는 입력출력 요소가 둘 다 있을 수 있지만 각 요소 중 하나만 있을 수 있습니다. 작업에 오류 가 있는 요소가 필요하지 않지만 필요한 경우 여러 개의 오류 요소가 있을 수 있습니다.

요소에는 표 4.2. “입력 및 출력 요소의 특성” 에 나열된 두 가지 속성이 있습니다.

표 4.2. 입력 및 출력 요소의 특성

속성설명

name

작업을 구체적인 데이터 형식으로 매핑할 때 참조할 수 있도록 메시지를 식별합니다.Identifies the message so it can be referenced when mapping the operation to a specific data format. 이름은 포함된 포트 유형 내에서 고유해야 합니다.

message

전송 또는 수신 중인 데이터를 설명하는 추상 메시지를 지정합니다. message 속성 값은 WSDL 문서에 정의된 추상 메시지 중 하나의 name 속성에 해당해야 합니다.

모든 입력출력 요소에 대한 name 속성을 지정할 필요는 없습니다. WSDL은 포함된 작업의 이름을 기반으로 기본 이름 지정 스키마를 제공합니다. 작업에 하나의 요소만 사용되는 경우 요소 이름은 기본적으로 작업 이름으로 설정됩니다. 입력출력 요소를 모두 사용하는 경우 요소 이름은 각각 이름에 Request 또는 Response 가 포함된 작업의 이름으로 설정됩니다.

4.6. 반환 값

작업 요소는 작업 중에 전달된 데이터에 대한 추상 정의이므로 WSDL은 작업에 대해 지정된 반환 값을 제공하지 않습니다. 메서드가 값을 반환하면 출력 요소에 해당 메시지의 마지막 부분으로 매핑됩니다.

4.7. 예제

예를 들어 예 4.1. “personalInfo 조회 인터페이스” 에 표시된 인터페이스와 유사한 인터페이스가 있을 수 있습니다.

예 4.1. personalInfo 조회 인터페이스

interface personalInfoLookup
{
  personalInfo lookup(in int empID)
  raises(idNotFound);
}

이 인터페이스는 예 4.2. “personalInfo 조회 포트 유형” 의 포트 유형에 매핑할 수 있습니다.

예 4.2. personalInfo 조회 포트 유형

<message name="personalLookupRequest">
  <part name="empId" element="xsd1:personalLookup"/>
<message/>
<message name="personalLookupResponse">
  <part name="return" element="xsd1:personalLookupResponse"/>
<message/>
<message name="idNotFoundException">
  <part name="exception" element="xsd1:idNotFound"/>
<message/>
<portType name="personalInfoLookup">
  <operation name="lookup">
    <input name="empID" message="tns:personalLookupRequest"/>
    <output name="return" message="tns:personalLookupResponse"/>
    <fault name="exception" message="tns:idNotFoundException"/>
  </operation>
</portType>