가이드라인: 웹 서비스 개발
주제
소개
RAD 6.0은 웹 서비스의 발견, 작성, 테스트, 전개 및 공개를
지원하기 위한 다양한 툴 세트를 제공합니다. 이러한 툴을
사용함으로써 최신 표준에 따라 웹 서비스를 개발할 수 있으며
여러 런타임 환경으로 전개할 수 있습니다. 이 툴은 또한 다양한 개발 방법을
지원 및 활용할 수 있는 많은 마법사를 제공합니다. 이 문서는
RAD 6.0에서 제공하는 다양한 웹 서비스 개발 방법과 상호 운영성
옵션 레벨 및 웹 서비스 전개와 관련된 개발 고려사항에 대해 설명합니다.
개발 접근법
RAD 6.0의 웹 서비스 마법사를 사용하면 하향식 또는 상향식 방법을
사용하여 웹 서비스를 작성할 수 있습니다. 하향식 방법을 사용하면
WSDL(Web Services Description Language) 문서에서 시작하여, 웹 서비스를
작성하는 데 사용할 수 있는 중추 EJB(Enterprise JavaBean) 또는 중추 Java
Bean을 생성할 수 있습니다. 상향식 방법을 사용하면 기존 Java Bean,
EJB, DADX(Document Access Definition Extender) 파일, URL(Uniform Resource
Locator) 또는 웹 서비스 전개 설명자(ISD) 파일에서 웹 서비스를 작성할 수 있습니다.
그림 1은 RAD 6.0에서 제공하는 웹 서비스 작성 방법을 보여줍니다.
그림 1 - RAD 6.0 웹 서비스 작성 접근법
웹 서비스 작성시 마법사를 사용하여 선택적으로 다음 작업을 수행할 수 있습니다.
- 웹 서비스가 작성되는 즉시 웹 서비스 탐색기
툴을 사용하여 웹 서비스를 테스트합니다.
- 클라이언트 어플리케이션에서 웹 서비스에 액세스하기
위해 사용할 수 있는 클라이언트 프록시를 생성합니다.
- UTC(Universal Test Client) 툴 또는 툴이 생성하는 샘플 JSP
어플리케이션을 사용하여 클라이언트 프록시를 테스트합니다.
- 웹 서비스 탐색기 툴을 사용하여 UDDI(Universal Description,
Discovery and Integration) 레지스트리에 웹 서비스를 출력합니다.
RAD 6.0으로 개발한 웹 서비스는 웹 또는 EJB 프로젝트에서
작성해야 하며 해당 결과물은 다음 표준을 준수해야 합니다.
- WSDL 버전 1.1
- SOAP 버전 1.1(Apache
SOAP 2.2 및 2.3 구현 포함)
- UDDI 버전 2.0
- WSIL 버전 1.0
- JAX-RPC(JSR-101로도 알려짐)
- JSR-109 및 JSR-921(엔터프라이즈 웹 서비스 구현)
- WS-I(Web Services Interoperability) Basic Profile 1.0(선택적 준수)
- WS-Security
이러한 주제에 대한 자세한 정보는 개념: J2EE용 웹 서비스를 참조하십시오.
하향식 개발
하향식 개발을 사용하면 WSDL 문서에 있는 웹 서비스의 추상 정의를
사용하여 이 정의에 대한 구체적 구현을 생성할 수 있습니다. (참고:
RAD 6.0은 WSDL 문서를 작성하는 마법사도 제공합니다.)
다음과 같은 두 가지 방법을 지원합니다.
상향식 개발
상향식 개발의 목적은 기존 어플리케이션 컴포넌트 또는 자원을 웹 서비스로
표시하는 것입니다. 아래에서 다양항 방법에 대해 설명합니다.
- Java Bean에서 웹 서비스 작성
이 방법을 사용하면 기존 Java Bean을 선택하고 해당 메소드를
웹 서비스로 표시할 수 있습니다. 생성된 결과물에 포함되는 내용은 다음과 같습니다.
- WSDL 파일: 이 파일은 웹 서비스에 대해 설명하며 .wsdl 파일 이름
확장자가 들어 있습니다. 세 가지 WSDL 양식(문서/리터럴,
RPC/리터럴 및 RPC/인코드)에서 선택할 수 있습니다. 각 옵션의
상호 운영성 영향은 WS-I Basic Profile 준수를 참조하십시오.
- SEI(Service Endpoint Interface): 이 Java 인터페이스는 웹
서비스의 메소드를 정의합니다. 해당 파일 이름의 접미부는 _SEI입니다.
- 웹 서비스 전개 설명자: webservices.xml 파일은
웹 서비스의 구현 및 전개 세부사항을 지정합니다.
- JAX-RPC 맵핑 파일: 이 파일은 웹 서비스의
Java 요소와 WSDL 간의 맵핑 관계를 정의합니다.
- EJB에서 웹 서비스 작성
Stateless 세션 Bean을 웹 서비스로 표시할 수 있습니다. 생성된
결과물은 Java Bean에 대해 생성된 결과물과 유사하며
WSDL 파일, SEI, 웹 서비스 전개 설명자 및 JAX-RPC
맵핑 파일이 포함됩니다. 이 방법 및 생성된
해당 결과물에는 다음 고려사항이 적용됩니다.
- 생성된 웹 서비스는 EJB 프로젝트에 작성되어야 합니다.
- 웹 서비스가 클라이언트에서 요청을 받을 수 있도록 하기 위한 라우터
프로젝트가 작성되어야 합니다. HTTP 전송 방법으로 SOAP를
사용하는 경우, 라우터 프로젝트를 웹 프로젝트로 작성하십시오. 또는
클라이언트에서 JMS를 통해 SOAP를 사용하는 경우, EJB 프로젝트로 작성하십시오. (이
경우 JMS 라우터가 메시지 구동 Bean으로 구현됩니다.) 라우터
및 웹 서비스 프로젝트는 동일할 수
없지만 동일한 EAR 파일에 있어야 합니다.
- JMS 전송 장치를 통해 SOAP를 사용하는 경우, 서버에
JMS 제공자를 구성해야 합니다. 또한 웹 서비스를 테스트하기 위해 웹 서비스 탐색기를 사용할 수 없습니다.
- DADX 파일에서 웹 서비스 작성
이 방법을 사용하면 DB2 XML 확장자 또는 웹 서비스 내부의 일반 SQL
문을 통해 액세스한 DB2 데이터를 랩핑할 수 있습니다. DB2 XML
확장기를 통해 액세스한 데이터는 DAD(Document Access Definition) 문서를
사용하여 DB2 데이터베이스로 맵핑되는 XML 문서로 구성됩니다. 이
방법의 시작 위치는 일반 SQL 문으로 정의되거나 DAD 파일에 있는
조작 세트를 사용하여 웹 서비스를 작성하는 방법을 지정하는 DADX
파일입니다. 생성된 결과물에는 표준 WSDL 파일, SEI, 웹 서비스 전개
설명자 및 JAX-RPC 맵핑 파일이 포함됩니다. 이 방법
및 생성된 해당 결과물에는 다음 고려사항이 적용됩니다.
- 이 방법은 IBM SOAP를 웹 서비스 런타임 환경으로
선택하는 경우에만 사용할 수 있습니다(전개 종속성 참조).
- 또는 하나 이상의 SQL 문의 결합, 저장된 프로시저
및 DAD 파일에서 DADX 파일을 생성할 수 있습니다.
- DADX 파일은 JDBC 연결을 정의하는
DADX 그룹 및 그룹 내 DADX 파일에서
공유되는 기타 정보에 포함되어야 합니다.
- 생성된 웹 서비스는 웹 프로젝트에 작성되어야 합니다.
- URL에서 웹 서비스 작성
해당 URL에서, 원격 서버에서 실행되는 Servlet에 직접 액세스하는
웹 서비스를 작성할 수 있습니다. 마법사를 사용하여 포트, 조작 및 매개변수
관점에서 Servlet의 인터페이스에 대해 설명할 수 있습니다. 이 마법사는 또한
결과 웹 서비스에 대해 설명하는 WSDL 문서를 생성합니다. 이 방법
및 생성된 해당 결과물에는 다음 고려사항이 적용됩니다.
- 이 방법은 IBM SOAP를 웹 서비스 런타임 환경으로
선택하는 경우에만 사용할 수 있습니다(전개 종속성 참조).
- 일반적으로 포트는 URL의 도메인/호스트 이름 부분에
해당하고 조작은 Servlet 컨텐츠 루트 및 URI 부분에
해당하며 매개변수는 Servlet의 입력 매개변수에 해당합니다.
- 생성된 웹 서비스는 웹 프로젝트에 작성되어야 합니다.
- 이미 활성 URL에 의해 웹 서비스가
구현되어 전개할 웹 서비스가 없습니다.
- 전개 설명자(ISD) 파일에서 웹 서비스 작성
웹 서비스를 전개하면 해당 형상 및 런타임 속성이
ISD 전개 설명자 파일에 정의됩니다. 이 파일은
SOAP 런타임 환경에서 클라이언트가 사용할 수 있어야 하는 서비스(예:
URI, 메소드, 구현 클래스(JavaBeans 및 EJB), 직렬화 프로그램 및 직렬화
해제 프로그램)에 대한 정보를 제공합니다. 이 사용 가능 정보를 사용하여
ISD 파일에서 웹 서비스를 작성할 수 있습니다. 이를 통해 기존
웹 서비스 구현을 랩핑하고, 해당 형상 및 맵핑 정보를 다시 지정하지
않고 새 웹 서비스로서 다시 전개할 수 있습니다. 이 방법
및 생성된 해당 결과물에는 다음 고려사항이 적용됩니다.
- 이 방법은 IBM SOAP를 웹 서비스 런타임 환경으로
선택하는 경우에만 사용할 수 있습니다(전개 종속성 참조).
- 생성된 웹 서비스는 웹 프로젝트에 작성되어야 합니다.
개발 가이드라인
다음 섹션은 RAD 6.0에서의 웹 서비스 개발과 관련된 중요한 고려사항에
대해 설명합니다. 이러한 섹션은 전개 및 웹 서비스의 WS-I
준수 요구사항을 기반으로 사용 가능한 개발 옵션에 대해 설명합니다.
개발 의존성
웹 서비스를 작성하기 위해 사용할 수 있는 방법(하향식 및 상향식)은
전개에 대한 대상을 지정하는 런타임 환경에 따라 다릅니다. RAD
6.0은 다음 웹 서비스 런타임 환경을 지원합니다.
- IBM WebSphere v6
RAD 6.0의 기본 웹 서비스 런타임 환경으로서
프로덕션 사용에 권장됩니다. 이 환경은 JMS 및 HTTP 전송 프로토콜을
모두 지원하므로 웹 서비스 클라이언트와 서버가 HTTP 연결 또는
JMS 대기열 및 주제를 통해 서로 통신할 수 있습니다. JMS 전송을
통해 웹 서비스에 액세스할 수 있는 경우 EJB로서 구현해야 합니다.
- IBM SOAP
IBM SOAP 런타임 환경은 Apache SOAP 버전 2.2 및
2.3 프로토콜을 지원하며(자원 참조) WebSphere Studio 버전 5.0
이전에서는 이 웹 서비스 런타임 환경만 지원됩니다. 이
환경은 이전 버전과의 호환성 목적으로만 사용해야 합니다.
- Apache Axis 1.0
이 런타임 환경은 Apache Axis 버전 1.0 SOAP 구현을
지원합니다(자원 참조). 프로덕션 사용시에는 잠재적인 웹 서비스
상호 운영성 문제점이 발생할 수 있으므로 권장하지 않습니다(툴의 도움말
컨텐츠에서 Apache Axis 1.0 런타임 환경 사용과 관련한 문제점 참조).
전개 대상에서 특별히 Apache SOAP 또는 Apache Axis 구현을 사용하지
않아도 되는 경우, IBM WebSphere v5 런타임 환경을 선택하도록
권장합니다. 해당 구현을 사용해야 경우, 웹 서비스 도움말 컨텐츠의
툴 제한사항에서 설명하는 연관 제한사항에 유의하십시오. 표
1은 RAD 6.0에서 각 런타임 환경에 대해 지원하는
웹 서비스 작성 방법에 대해 요약 설명합니다.
접근법 |
IBM WebSphere v6 |
IBM SOAP |
Apache Axis 1.0 |
WSDL 문서에서 중추 JavaBean 작성 |
예 |
예 |
예 |
WSDL 문서에서 중추 EJB 작성 |
예 |
아니오
|
아니오
|
JavaBean에서 웹 서비스 작성 |
예 |
예 |
예 |
EJB에서 웹 서비스 작성 |
예 |
예 |
아니오
|
DADX에서 웹 서비스 작성 |
아니오
|
예 |
아니오
|
URL에서 웹 서비스 작성 |
아니오
|
예 |
아니오
|
웹 서비스 전개 설명자(ISD)에서 웹 서비스 작성 |
아니오
|
예 |
아니오
|
표 1 - 런타임
환경에서 지원되는 웹 서비스 작성 방법
WS-I Basic Profile 준수
WS-I(Web Services-Interoperability) Basic Profile은 WS-I 조직에서
플랫폼, 운영 체제 및 프로그래밍 언어 간의 웹 서비스 상호 운영성을
향상시키기 위해 출력하는 요구사항 세트입니다. 이 프로파일은
WS-I를 준수하기 위해 웹 서비스가 충족시켜야 하는 WSDL 및
프로토콜(SOAP/HTTP) 트래픽 요구사항을 정의합니다. RAD 6.0은 웹 서비스가 WS-I Basic
Profile 1.0 요구사항을 준수하는지 검증하는 데 사용할 수 있는 유효성 확인 툴을
포함합니다. 웹 서비스를 개발하기 전에 작업공간 또는 프로젝트에
대한 WS-I 준수 레벨(필요, 제안 또는 무시(기본값))을 설정하거나
개발 후 유효성 확인 툴을 실행할 수 있습니다.
WS-I Basic Profile을 준수하는 웹 서비스를 개발하도록
권장합니다. 이를 위해서는 다음 가이드라인을 준수해야 합니다.
- WSDL 양식에 문서/리터럴 또는 RPC/리터럴을 사용합니다. (RPC/인코드는
WS-I를 준수하지 않습니다.)
- 메시지 및 전송 프로토콜로 HTTP를 통해 SOAP를
사용합니다. (JMS를 통한 SOAP는 WS-I를 준수하지 않습니다.)
- 웹 서비스에 대한 보안 옵션을 사용하지 않습니다. (XML
디지털 서명 및 XML 암호화는 WS-I를 준수하지 않습니다.)
클라이언트 프록시 고려사항
- 웹 서비스를 작성할 때 선택적으로 다음과 같은 두
가지 유형의 클라이언트 프록시를 생성할 수 있습니다.
Java Bean 클라이언트 프록시를 사용하면 원격 프로시저 호출을 통해 웹 서비스 메소드를
호출할 수 있습니다. 이 프록시는 클라이언트 런타임 환경에 IBM SOAP 또는
Apache Axis 1.0을 선택할 때만 클라이언트 웹 프로젝트에 작성될 수 있습니다.
또는 IBM WebSphere v6 클라이언트 런타임 환경의 경우, 웹, Java,
EJB 또는 어플리케이션 클라이언트 프로젝트에 작성될 수 있습니다.
이 옵션을 사용하면 호출하려는 각 웹 서비스 메소드에 대해 DB2 UDF(User-Defined
Function)를 작성할 수 있습니다. 이 옵션을 사용하려면 DB2
웹 서비스 소비자 UDF 패키지 및 DB2 XML 확장자를 데이터베이스에
설치해야 합니다. UDF는 작성되어 데이터베이스 정의에 추가되며
모든 관련 클라이언트 결과물은 웹 프로젝트에 저장됩니다.
- 웹 서비스 및 웹 서비스 클라이언트에 다른 EAR을 선택하면 런타임 오류가
발생할 위험이 줄어듭니다. 클라이언트는 웹
서비스와 다른 어플리케이션이어야 하며 웹 서비스는
어플리케이션 간의 의사소통 목적이 아닙니다.
자원
아래 주제에 대한 추가 정보는
해당 링크를 참조하십시오.
|