2008-08-14 5 views
16

Apache CXF를 사용하여 웹 서비스로 약 10 개의 Java 클래스를 노출했습니다.웹 서비스로 작업 할 때 엔드 포인트, 서비스 및 포트의 차이점은 무엇입니까?

CXF, Axis 및 .NET을 사용하여 클라이언트를 생성했습니다.

축 및 CXF에서 "서비스"또는 "로케이터"가 생성됩니다. 이 서비스에서 "포트"를 얻을 수 있습니다. "포트"는 웹 서비스에 의해 노출 된 메소드를 개별적으로 호출하는 데 사용됩니다.

.NET에서 "서비스"는 웹 서비스에 대한 호출을 직접 노출합니다.

웹 서비스의 경우 누군가 포트, 서비스, 로케이터 및 엔드 포인트의 차이점을 설명 할 수 있습니까?

축 :

PatientServiceImplServiceLocator locator = 
    new PatientServiceImplServiceLocator(); 
PatientService service = locator.getPatientServiceImplPort(); 

CXF :

PatientServiceImplService locator = new PatientServiceImplService(); 
PatientService service = locator.getPatientServiceImplPort(); 

닷넷 :

이미 언급 한 바와 같이
PatientServiceImplService service = new PatientServiceImplService(); 

답변

6

저는 http://www.w3.org/TR/wsdl.html으로 넘어갔습니다. 나는 포트, 서비스 및 엔드 포인트를 합리적으로 잘 설명한다고 생각합니다. 위치 지정자는 일부 WS 스택이 서비스 엔드 포인트에 대한 액세스를 제공하는 데 사용하는 구현 특정 메커니즘입니다.

1

, 그 용어는 서로 다른 스택에 다른 것을 의미 - 아무도 없다 웹 서비스에 대한 올바른 일반적인 대답.

31

나는 Kevin Kenny의 대답을 기반으로 정보를 찾았지만 다른 사람들을 위해이 정보를 게시하겠다고 생각했습니다.

WSDL 문서는 서비스를 네트워크 종단점 또는 포트의 모음으로 정의합니다. WSDL에서 끝점과 메시지의 추상 정의는 구체적인 네트워크 배포 또는 데이터 형식 바인딩과 구분됩니다. 이것은 추상적 인 정의의 재사용을 허용합니다 : 교환되는 데이터의 추상적 인 설명 인 메시지와 추상 추상 작업 모음 인 포트 유형. 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양은 재사용 가능한 바인딩을 구성합니다. 포트는 네트워크 주소를 재사용 가능한 바인딩과 연결하여 정의되며 포트 모음은 서비스를 정의합니다. 따라서, WSDL 문서는 네트워크 서비스의 정의는 다음 요소를 사용

  • 유형 - (예 XSD 같은) 몇몇 유형의 시스템을 이용하여 데이터 타입 정의를위한 컨테이너.
  • 메시지 - 전달되는 데이터의 추상적 인 유형 정의.
  • 조작 - 서비스가 지원하는 조치에 대한 추상적 설명.
  • 포트 유형 - 하나 이상의 끝점에서 지원되는 추상 동작 집합입니다.
  • 바인딩 - 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 사양.
  • 포트 - 바인딩과 네트워크 주소의 조합으로 정의되는 단일 끝점입니다.
  • 서비스 - 관련 엔드 포인트의 모음.
3
내가 <port><endpoint>이 같은 목적을 제공한다는 추가 할

하지만 port는 WSDL 2.0 WSDL 1.1 endpoint에 의해 사용된다.

처음에는 혼란 스러웠습니다.