WSIF 및 WSDL
메타데이터 기반 WSIF(Web Services Invocation Framework)와 WSDL(Web Services Description Language)의 개발 중인 시맨틱은 밀접한 관계가 있습니다.
WSDL에서 서비스는 다음 세 개의 명확한 세션에서 정의됩니다.
- portType. 이 섹션은 서비스에서 제공하는 추상 인터페이스를 정의합니다. portType은 조작 세트를 정의합니다. 각 조작은 In-Out(요청-응답), In-Only, Out-Only 및 Out-In(청구-응답)이 될 수 있습니다. 각 조작은 입력 및/또는 출력 메시지를 정의합니다. 메시지는 파트 세트로 정의되며 각 파트는 스키마 정의 유형을 가집니다.
- binding. 이 섹션은 추상 portType과 실제 서비스 형식 및 프로토콜 간에 맵핑하는 방법을 정의합니다. 예를 들어 SOAP 바인딩은 인코딩 스타일, SOAPAction 헤더, 본문의 네임스페이스(targetURI) 등을 정의합니다.
- port. 이 섹션은 사용 가능한 서비스의 위치(엔드포인트)를 정의합니다. 예를 들면, SOAP 서비스가 사용 가능한 HTTP 웹 주소입니다.
현재 WSDL에서, 각 포트는 단 하나의 바인딩만 갖고, 각 바인딩은 단일 portType을 가집니다. 그러나 (보다 중요한 사항은) 각 서비스(PortType)가 복수 포트를 보유할 수 있으며, 이들 각각이 해당 서비스의 액세스를 위한 선택 가능한 위치 및 바인딩을 표현한다는 점입니다.
WSIF(Web Services Invocation Framework)는 가능한 많은 WSDL의 시맨틱을 따릅니다.
- WSIF 동적 호출 API는 WSDL의 모델에 대한 런타임 등가를 직접 노출합니다. 예를 들어, 조작에 대한 호출은 입력 메시지가 있는 조작 실행과 관련됩니다.
- WSDL에는 새 포트 및 바인딩의 추가를 지원하는 확장점이 있습니다. 이것은 WSDL이 새 시스템을 설명할 수 있도록 해줍니다. WSIF의 동등한 개념은 제공자로서, WSIF 서비스를 서비스의 기본 구현에 링크시킵니다. 이것은 WSIF가 확장기능의 클래스를 이해하고 그에 따라서 새 서비스 구현 유형을 지원할 수 있게 합니다.
메타데이터 기반 호출 프레임워크로서, WSIF는 메타데이터의 설계를 따릅니다. WSDL이 확장되면 WSIF도 따르도록 업데이트됩니다.
WSIF의 기본 유형 시스템은 XML 스키마입니다. WSIF는 동적 프록시를 사용한 호출을 지원하는데, 이것은 다시 Java™ 유형 시스템을 지원하지만 WSIFMessage 인터페이스를 사용하여 WSIF API를 통해 웹 서비스를 호출할 때 WSIFMessage 오브젝트를 WSDL 문서에서 정의되는 XML 스키마 유형을 기반으로 하는 데이터로 채워야 합니다. 따라서 스키마 유형에서 런타임 환경으로의 표준 및 고정 맵핑을 통해 오브젝트 유형을 정의해야 합니다.