웹 서비스 호출 프레임워크

Web Services Invocation Framework
아파치 WSIF
개발자아파치 소프트웨어 재단
안정적 해제
2.0 / 2003년 1월 27일
운영 체제크로스 플랫폼
유형웹 서비스
면허증아파치 라이선스 2.0
웹사이트ws.apache.org/wsif

WSDL(Web Services Invocation Framework)은 WSDL(Web Services Description Language)에 설명된 서비스를 호출하기 위한 간단하고 유연한 Java API를 지원한다.

WSDL은 WSIF를 이용하여 서로 다른 프로토콜을 사용하는 다양한 플랫폼에서 실행되는 소프트웨어에 접근하기 위한 통합 프레임워크의 중심이 될 수 있다. 소프트웨어는 WSDL을 사용하여 설명되어야 하며 클라이언트의 WSIF 프레임워크에 공급자가 있는 설명에[clarification needed] 바인딩이 포함되어야 한다. WSIF defines and comes packaged with providers for local Java, Enterprise JavaBeans (EJB), Java Message Service (JMS), and Java EE Connector Architecture (JCA) protocols, which means that a client can define an EJB or a Java Message Service-accessible service directly as a WSDL binding and access it transparently using WSIF, using the same API one SOAP 서비스 또는 로컬 Java 클래스에 사용됨.

구조

WSDL에서 바인딩은 추상 PortType과 실제 서비스 형식 및 프로토콜 사이의 매핑 방법을 정의한다. 예를 들어 SOAP 바인딩은 인코딩 스타일, SOAPAction 헤더, 본문의 네임스페이스(대상)를 정의한다.우리당) 등.

WSDL은 한 웹 서비스에 대해 여러 개의 구현과 동일한 PortType을 공유하는 여러 포트를 허용한다. 즉, WSDL은 동일한 인터페이스가 SOAP나 IIOP와 같은 서비스에 바인딩을 가질 수 있도록 허용한다.

WSIF는 동일한 클라이언트 코드가 사용 가능한 바인딩에 액세스할 수 있도록 API를 제공한다. 클라이언트 코드는 PortType에 쓸 수 있으므로, 어떤 포트를 사용하고 바인딩을 사용하는 배포 또는 구성 설정(또는 코드 선택)이 될 수 있다.

WSIF는 이러한 다중 WSDL 바인딩을 지원하기 위해 제공자를 사용한다. 제공자는 WSDL 확장을 지원하고 특정 구현을 통해 서비스를 호출할 수 있는 코드 조각이다. WSIF 제공자는 J2SE JAR 서비스 제공자 규격을 사용하므로, 실행 시 검색할 수 있다.

고객은 새로운 구현을 활용하고, 인프라와 런타임에 포트 선택을 위임할 수 있으며, 이를 통해 서비스 품질 특성이나 비즈니스 정책에 기초하여 구현을 선택할 수 있다.

EJB, JMS 및 JCA용 바인딩

WSIF는 추가 바인딩 확장을 정의하여 Enterprise JavaBean(EJB), 로컬 Java 클래스, JMS(Java Message Service) API를 사용하여 메시지 큐를 통해 액세스할 수 있는 소프트웨어 및 Java Connector 아키텍처를 사용하여 호출할 수 있는 소프트웨어를 WSDL에서도 설명할 수 있다. WSDIF는 투명한 호출 g를 허용하는 제공자와 함께 패키지되어 있다.해당 WSDL 설명을 참조하십시오.

설명

WSIF는 개발자들이 일반적인 프로그래밍 모델인 SOAP(Simple Object Access Protocol) APIs와 직접 작업하는 대신 WSDL 설명을 통해 추상적인 웹 서비스 표현과 상호작용할 수 있도록 한다. WSIF를 통해 개발자들은 웹 서비스가 어떻게 구현되고 접속되는지에 상관없이 동일한 프로그래밍 모델로 작업할 수 있다.

WSIF는 런타임에 서비스에 대한 메타데이터의 검사에 따라 웹 서비스의 스텁이 없거나 완전히 동적인 호출이 가능하다. 또한 바인딩의 업데이트된 구현을 런타임에 WSIF에 연결하고 호출 서비스는 런타임까지 바인딩 선택을 연기할 수 있다.

그것은 WSDL에 밀접하게 기반을 두고 있어서 언어로 설명될 수 있는 어떤 서비스라도 호출할 수 있다.

복잡한 기업용 소프트웨어 시스템이 수십 년에 걸쳐 개발된 다양한 소프트웨어로 구성된 경우EJB, Java의 커넥터 아키텍처를 사용하여 액세스한 레거시 애플리케이션, 외부 서버에 호스팅된 SOAP 서비스, 메시징 미들웨어를 통해 액세스되는 구형 코드—이 모든 조각을 사용하여 유용한 일을 수행하는 소프트웨어 애플리케이션을 작성하는 것이 필요하며, 프로토콜의 차이, 소프트웨어의 이동성 등이 서로 상충된다.

소프트웨어를 다른 서버로 이동하면 코드가 깨진다. SOAP 라이브러리는 현재 사용되지 않는 SOAP API를 사용하기 때문에 변경(예를 들어 Apache SOAP를 사용하던 것에서 Apache Axis로 이동하는 경우)을 사용했다. 이전에는 EJB로서 액세스 가능했던 것이 JMS를 통해 메시징 미들웨어를 통해 현재 제공되고 있다. 또한 소프트웨어를 사용하는 코드는 수정되어야 하며, 외부 고객에게 SOAP 서비스로 제공되는 EJB를 가지고 있는 경우 이 소프트웨어를 사용하는 코드는 수정되어야 한다. SOAP를 사용하면 EJB에 직접 액세스하는 것에 비해 성능이 저하된다.

WSIF는 WSDL을 상이한 소프트웨어에 대한 표준화된 설명으로 사용할 수 있도록 하여 이러한 문제를 해결하고, 사용자가 프로토콜이나 위치에 의존하지 않고 이 소프트웨어에 액세스할 수 있도록 한다. API와 실제 프로토콜의 분리는 또한 유연성이 있다는 것을 의미한다. 프로토콜, 위치 등은 클라이언트 코드를 다시 컴파일할 필요 없이 전환될 수 있다. 외부적으로 이용 가능한 SOAP 서비스가 EJB로 이용 가능해진 경우, 이용자는 서비스를 이용하는 어플리케이션에 어떠한 수정도 하지 않고 서비스 설명(WSDL)을 변경하여 RMI/IIOP를 이용할 수 있다. WSDL의 확장성, 동일한 서비스에 대해 여러 바인딩을 제공하는 기능, 런타임에 바인딩을 결정하는 기능 등을 이용할 수 있다.

WSIF와 축의 차이

Axis는 SOAP의 구현이다. 그것은 웹 서비스 구현을 배포한 다음 클라이언트와 구현 간에 SOAP 메시지를 라우팅하기 위한 서버측 인프라를 포함한다. SOAP 서비스를 호출하기 위한 JAX-RPC 규격도 구현한다.

WSIF는 서비스 호출에 사용된다는 점에서 액슬의 클라이언트 조각과 유사하다. 그러나 WSDIF의 API는 WSDL 기반이며 프로토콜에 독립적이다. 프로토콜별 코드("프로바이더")를 연결할 수 있다. SOAP 서비스를 호출하기 위해 WSIF는 Axis API(즉, JAX-RPC)를 사용하여 호출하는 Axis 제공자와 함께 패키지되어 있다. 그래서 WSIF는 Axis보다 더 추상적인 수준에서 작동한다.

WSIF와 JAX-RPC의 차이점

JAX-RPC는 XML 기반 RPC 서비스를 호출하기 위한 API로, 기본적으로 현재 범위는 SOAP 서비스 호출로 제한되어 있다. WSIF is an API for invoking WSDL-described services, whether they happen to be SOAP services or not (for example, WSIF defines WSDL bindings so that EJBs, enterprise software accessible using JMS or the Java Connector architecture as well as local Java classes can all be described as first-class WSDL services and then invoked using the same, proto콜 독립 WSIF API).

참고 항목

외부 링크