웹서비스란
- 웹 서비스는 네트워크 상에서 상호 운용 가능한 소프트웨어 컴포넌트들이다
웹서비스 아키텍처
- client와 server 사이에 통신을 하기 위해서
- service Provider는 UDDI에 등록
- Client는 UDDI을 이용하여 탐색 & 서비스 정보
SOAP(Simple Object Access Protocol)
- wsdl에서 설명하는 것을 기반으로
- 클라이언트와 서버 간에 서로 통신하는 메시징 프로토콜을 발한다.
- 서버는 Axis Engine을 이용해서 SOAP을 통해 들어온 메시지를 해석 한다.
-
구성
-
Envlelop - 필수
-
SOAP Part
- Header - 옵션 => 서비스에 대한 부가적인 정보(트랜잭션, 보안, 신뢰성 문제 등)
- Body - 필수 => 서비스 호출에 대한 정보,.
-
Attachment Part
- Attchment 들 - 옵션 => 첨부 파일들(바이너리 정보)
-
-
- SOAP의 바탕은 WSDL 이다.
WSDL(Web Services De
-
구성요소
- Service
- Port
- Blinding
- Port type : 인터페이스 선언 => 인터퍼이스로 변환
- Operation : 함수 선언 => 함수로 변환
- Message : 함수 인자 선언 => 함수의 인자들
- Types : 데이터 타입 선언 => 실제적인 데이터 타입
웹 서비스 표준 현황
- 표준을 정하는 단체에 참여하는 단체에서 책정한 표준 스팩들
- UDDI, SOAP(메시지 프로토콜(어플리케이션 단)), WSDL(설명) => 1세대
-
1세대 만으로도 기업용을 사용할 수 없고(트랜잭션 처리 불가능), XML의 보안이 취약함
- WS-* 단들 : WS-Security. WS-Transaction, WS-Coordination ...
- 기업체 환경에 적용하기 위한 부과적인 스팩들 => XML 문서로 정의
- BPEL4WS : 흔히 BPEL, 서로 다른 이기종 및 웹 서비스에 대해서 각각의 서비스를 모델링을 통해 하나의 서비스로 조합시키는 것
웹 서비스 보안
- WS-Security를 통하여 지원
WSDL
- types : 실질적인 데이터의 정의
- message : 메소 인자 정의
- portType : 메소드 정의
- binding : 어떤 통신 프로토콜을 통해서 통신을 할 것인지 정의
- service : 클라이언트 단에 제공하기 위해, 처음 호출시 해당 주소를 호출해라. 또한 어떤 서비스를 하는 지 알려 준다.
- xml 자체가 xsd를 통하여 재작
-
WSDL이란
- 서비스의 외부 인터페이스를 표현,
- CORBA, COM+(ATL)의 IDL에 해당
-
WSDL 읽는 방법
- targetNamespace : 해당 WSDL의 고유한 키. definitions 에서 정의
- definitions에서는 또한 긴 targetNamespace에 대신에 축약하여 사용할 수 있는 것을 정의할 수 있다.
- 맨 아랫단부터 service -> binding - > portType -> message -> types 로 올라가면서 찾는다.
-
웹서비스 Stub 생성 : 하부 단에서 local을 호출하지만, 다른 머신의 것을 호출하게 하는 것(RMI)
- <types> : 문서에서 사용되고 있는 데이터형의 정의 : Class
- <message> : 서비스가 사용하는 메시지를 정의 : Method Parameter Or Return type
- <operation> : 서비스의 함수에서 사용되는 요청/ 응답 메시지 저의 : Method
- <portType> : 여러 오퍼레이션의 묶음 : class
- <binding> : 포트형과 네트워크 호출 프로토콜
- <service><port>
-
WSDL Document/RPC
- 통신 방법에 대한 정의 : binding 에서 정의 되어 있다. <soap:binding style="">, soap 메시지가 가는 형식
-
style
- document : 문서 자체가 가는 개념
- RPC : 명시적으로 어떤 오퍼레이션을 호출하겠다는 개념
-
use
- literal
- Encoded
- 현재 많이 사용하는 방식 : document/literal 와 document/literal/wrapper 방식을 주로 사용한다. (style/use)
- 트랜스포트에 독립적이므로 WS-Addressing을 이용해서 정의한다(중요하지 않음.. - 지금은)
서비스 제작 방식
- Top-Down : WSDL을 기반으로 java 파일 생성
- Bottom-Up : java 파일을 기반으로 WSDL를 생성
SOAP
- document/literal 방식은 : 바로 입력하는 형태로 되어 있다 => TYPE 타입을 참조
- document/literal/wrapper 방식은 : 입력하는 것을 한 번더 감싸서 정보를 입력한다. => TYPE 타입을 참조
- RCP/literal 방식 : operation - parameter 를 주어서 호출하는 방법 => PORT 타입을 참조
- WS-Addressing : 주소 결정 방식.. (아직 여기 까지 진전되지 않았다.. => 아직는 독립적이지 못하다.. HTTP 에 종속적..)
[출처] WebService, SOAP, WSDL 설명|작성자 나무늘보
'Soap & WebService' 카테고리의 다른 글
SOAP 모델에 따른 인코딩방식 (0) | 2008.08.20 |
---|---|
SOAP Version 1.2 스펙 한글판 (0) | 2008.08.20 |
SOAP message (0) | 2008.08.20 |
SOAP 인코딩 스타일 비교 (0) | 2008.05.24 |
soap(Simple Object Access Protocol) (0) | 2008.05.24 |