가이드라인: 웹 서비스 개발
이 가이드라인은 RAD 6.0 모델링 환경을 사용하여 웹 서비스를 발견, 작성, 테스트, 배치 및 공개하는 방법에 대해 설명합니다.
관계
관련 요소
기본 설명

소개

RAD 6.0은 웹 서비스 발견, 작성, 테스트, 배치 및 공개를 지원하는 광범위한 도구 세트를 제공합니다. 이 도구를 사용하면 최신 표준에 따라 웹 서비스를 개발할 수 있으며 여러 런타임 환경에 배치할 수 있습니다. 이 도구는 또한 다양한 개발 접근 방식을 지원하고 수행하는 많은 마법사를 제공합니다. 이 문서는 RAD 6.0에서 웹 서비스를 개발하기 위해 제공하는 다양한 접근 방식과 웹 서비스 배치 및 상호운용성 옵션 레벨과 관련된 개발 고려사항에 대해 설명합니다.

개발 접근 방식

RAD 6.0의 웹 서비스 마법사를 사용하면 하향식 또는 상향식 접근 방식을 사용하여 웹 서비스를 작성할 수 있습니다. 하향식 접근 방식을 사용하면 WSDL(Web Services Description Language) 문서로 시작할 수 있으며, 웹 서비스를 작성하는 데 사용할 수 있는 스켈레톤 Java Bean 또는 스켈레톤 EJB(Enterprise JavaBean)를 생성할 수 있습니다. 상향식 접근 방식을 사용하면 기존 Java Bean, EJB, DADX(Document Access Definition Extender) 파일, URL(Uniform Resource Locator) 또는 웹 서비스 배치 설명자(ISD) 파일에서 웹 서비스를 작성할 수 있습니다. 그림 1은 RAD 6.0에서 제공하는 웹 서비스 작성 접근 방식을 보여줍니다.

RAD 6.0 웹 서비스 작성 접근 방식

그림 1 - RAD 6.0 웹 서비스 작성 접근 방식

웹 서비스를 작성할 때 마법사를 사용하여 다음을 수행할 수 있습니다.

  • 웹 서비스 탐색기 도구를 사용하여 웹 서비스를 작성한 직후 테스트할 수 있습니다.
  • 클라이언트 응용프로그램에서 웹 서비스에 액세스하기 위해 사용할 수 있는 클라이언트 프록시를 생성할 수 있습니다.
  • UTC(Universal Test Client) 도구 또는 도구가 생성하는 샘플 JSP 응용프로그램을 사용하여 클라이언트 프록시를 테스트할 수 있습니다.
  • 웹 서비스 탐색기 도구를 사용하여 UDDI(Universal Description, Discovery and Integration) 레지스트리에 웹 서비스를 공개할 수 있습니다.

RAD 6.0으로 개발된 웹 서비스는 웹 또는 EJB 프로젝트에 작성되어야 하며 다음 표준을 준수하는 중간 산출물을 포함해야 합니다.

  • WSDL(Web Services Definition Language) 버전 1.1
  • SOAP(Simple Object Access Protocol) 버전 1.1(Apache SOAP 2.2 및 2.3 구현 포함)
  • UDDI(Universal Description, Discovery and Integration) 버전 2.0
  • WSIL(Web Services Inspection Language) 버전 1.0
  • JAX-RPC(Java API for XML-based Remote Procedure Call) - JSR-101이라고도 함
  • JSR-109 및 JSR-921(엔터프라이즈 웹 서비스 구현)
  • WS-I(Web Services Interoperability) 기본 프로파일 1.0(선택적 준수)
  • WS-Security

이 주제에 대한 자세한 정보는 개념: J2EE의 웹 서비스를 참조하십시오.

하향식 개발

하향식 개발 방식을 사용하면 WSDL 문서에 포함된 웹 서비스에 대한 추상 정의를 통해 구체적인 구현을 생성할 수 있습니다 (참고: RAD 6.0은 또한 WSDL 문서를 작성하는 마법사를 제공함). 다음 두 가지 접근 방식이 지원됩니다.

  • WSDL 문서에서 스켈레톤 Java Bean 작성

    WSDL 문서에서 스켈레톤 Java Bean을 작성하여 웹 서비스로 표시할 수 있습니다. 생성된 Java Bean 메소드는 WSDL 문서에서 설명하는 오퍼레이션과 일치하며 바꿀 수 있는 사소한 구현이 포함됩니다. 다음 고려사항은 이 접근 방식 및 생성된 해당 중간 산출물에 적용됩니다.

    • WSDL 문서의 URI 또는 WSDL 파일을 웹 서비스에 대한 소스로서 가리키는 WSIL 또는 HTML 문서의 URI를 입력할 수 있습니다.
    • WSDL 파일에는 서비스 요소가 포함되어야 합니다. 또한 선택적으로 결과 웹 서비스의 표준화된 WSDL 참조(WSIL) 문서를 생성할 수 있습니다.
    • 생성된 웹 서비스는 웹 프로젝트에 작성해야 합니다.
  • WSDL 문서에서 스켈레톤 EJB 작성

    이 접근 방식을 사용하면 위와 같이 WSDL 문서에서 스켈레톤 Stateless 세션 EJB를 작성하고 웹 서비스로 표시할 수 있습니다. EJB의 메소드는 WSDL 문서에서 설명하는 오퍼레이션과 일치하며 바꿀 수 있는 사소한 구현이 포함됩니다. 다음 고려사항은 이 접근 방식 및 생성된 해당 중간 산출물에 적용됩니다.

    • 이 접근 방식은 IBM WebSphere v6을 웹 서비스 런타임 환경으로 선택하는 경우에만 사용할 수 있습니다(배치 종속성 참조).
    • WSDL 문서의 URI 또는 WSDL 파일을 웹 서비스에 대한 소스로서 가리키는 WSIL 또는 HTML 문서의 URI를 입력할 수 있습니다.
    • WSDL 파일에는 서비스 요소가 포함되어야 합니다. 또한 선택적으로 결과 웹 서비스의 표준화된 WSDL 참조(WSIL) 문서를 생성할 수 있습니다.
    • 생성된 웹 서비스는 EJB 프로젝트에 작성해야 합니다. 또한 라우터 프로젝트가 작성되어 웹 서비스에서 HTTP 전송을 통해 요청을 받을 수 있습니다(참고: 이 접근 방식에서는 JMS 전송이 지원되지 않음). 라우터 프로젝트는 웹 또는 EJB 프로젝트일 수 있으며 웹 서비스를 포함하는 프로젝트와 동일한 프로젝트일 수는 없지만 동일한 포함 EAR 파일에 포함되어야 합니다.

상향식 개발

상향식 개발의 목적은 기존 응용프로그램 컴포넌트 또는 자원을 웹 서비스로 표시하는 것입니다. 다음은 다양한 접근 방식에 대한 설명입니다.

  • Java Bean에서 웹 서비스 작성

    이 접근 방식을 사용하면 기존 Java Bean을 선택하고 해당 메소드를 웹 서비스로 표시할 수 있습니다. 다음과 같은 중간 산출물이 생성됩니다.

    • WSDL 파일: 이 파일은 웹 서비스에 대해 설명하며 파일 이름 확장자는 .wsdl입니다. 세 가지 WSDL 스타일(문서/리터럴, RPC/리터럴 및 RPC/인코드)에서 선택할 수 있습니다. 각 옵션의 상호운용성 영향은 WS-I 기본 프로파일 준수를 참조하십시오.
    • 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 Extender 또는 일반 SQL 문을 통해 액세스한 DB2 데이터를 웹 서비스 내부에 랩핑할 수 있습니다. DB2 XML Extender를 통해 액세스하는 데이터는 DAD(Document Access Definition) 문서를 사용하여 DB2 데이터베이스에 맵핑되는 XML 문서로 구성되어 있습니다. 이 접근 방식의 시작점은 일반 SQL 문으로 정의하거나 DAD 파일에 정의한 오퍼레이션 세트를 사용하여 웹 서비스를 작성하는 방법을 지정하는 DADX 파일입니다. 생성된 중간 산출물에는 표준 WSDL 파일, SEI, 웹 서비스 배치 설명자 및 JAX-RPC 맵핑 파일이 포함됩니다. 다음 고려사항은 이 접근 방식 및 생성된 해당 중간 산출물에 적용됩니다.

    • 이 접근 방식은 IBM SOAP를 웹 서비스 런타임 환경으로 선택하는 경우에만 사용할 수 있습니다(배치 종속성 참조).
    • 하나 이상의 SQL 문, 스토어드 프로시저 및 DAD 파일의 조합에서 DADX 파일을 선택적으로 생성할 수 있습니다.
    • DADX 파일은 그룹 내 DADX 파일에서 공유되는 기타 정보 및 JDBC 연결을 정의하는 DADX 그룹에 포함되어야 합니다.
    • 생성된 웹 서비스는 웹 프로젝트에 작성해야 합니다.
  • URL에서 웹 서비스 작성

    원격 서버에서 실행되는 Servlet에 직접 액세스하는 웹 서비스를 해당 URL에서 작성할 수 있습니다. 마법사를 사용하면 Servlet 인터페이스를 포트, 오퍼레이션 및 매개변수 관점에서 설명할 수 있으며 결과 웹 서비스에 대해 설명하는 WSDL 문서가 생성됩니다. 다음 고려사항은 이 접근 방식 및 생성된 해당 중간 산출물에 적용됩니다.

    • 이 접근 방식은 IBM SOAP를 웹 서비스 런타임 환경으로 선택하는 경우에만 사용할 수 있습니다(배치 종속성 참조).
    • 포트는 일반적으로 URL의 도메인/호스트 이름 파트에 해당되고 오퍼레이션은 Servlet 컨텍스트 루트 및 URI 파트에 해당되며 매개변수는 Servlet의 입력 매개변수에 해당됩니다.
    • 생성된 웹 서비스는 웹 프로젝트에 작성해야 합니다.
    • 활성 URL로 이미 웹 서비스가 구현되었으므로 배치할 웹 서비스가 없습니다.
  • 배치 설명자(ISD) 파일에서 웹 서비스 작성

    웹 서비스가 배치되면 해당 구성 및 런타임 속성이 ISD 배치 설명자 파일에 정의됩니다. 이 파일은 예를 들어, URI, 메소드, 구현 클래스(JavaBeans 및 EJB), 직렬화기 및 직렬화 해제기와 같은 SOAP 런타임 환경에서 클라이언트가 사용할 수 있도록 작성해야 하는 서비스에 대한 정보를 제공합니다. 이 사용 가능한 정보를 사용하여 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 기본 프로파일 준수

WS-I(Web Services-Interoperability) 기본 프로파일은 WS-I 조직에서 플랫폼, 운영 체제 및 프로그래밍 언어 간의 웹 서비스 상호운용성을 증진시키기 위해 공개하는 요구사항 세트입니다. 이 프로파일은 웹 서비스에서 WS-I 준수를 위해 충족시켜야 하는 WSDL 및 프로토콜(SOAP/HTTP) 트래픽 요구사항을 정의합니다. RAD 6.0에는 WS-I 기본 프로파일 1.0 요구사항에 대한 웹 서비스 준수를 확인하기 위해 사용할 수 있는 유효성 검증 도구가 포함됩니다. 웹 서비스를 개발하기 전에 작업공간 또는 프로젝트에 대한 WS-I 준수 레벨(필요, 제안 또는 무시(기본값))을 설정하거나 개발 후 유효성 검증 도구를 실행할 수 있습니다.

WS-I 기본 프로파일을 준수하는 웹 서비스를 개발하도록 권장합니다. 이를 위해서는 다음 가이드라인을 따라야 합니다.

  • WSDL 스타일에는 문서/리터럴 또는 RPC/리터럴을 사용하십시오(RPC/인코드는 WS-I를 준수하지 않음).
  • HTTP를 통한 SOAP를 메시지 및 전송 프로토콜로 사용하십시오(JMS를 통한 SOAP는 WS-I를 준수하지 않음).
  • 웹 서비스에는 보안 옵션을 사용하지 마십시오(XML 디지털 서명 및 XML 암호화는 WS-I를 준수하지 않음).

클라이언트 프록시 고려사항

  • 웹 서비스를 작성할 때 다음 두 가지 유형의 클라이언트 프록시 중 하나를 선택하여 생성할 수 있습니다.
  • Java Bean 프록시

Java Bean 클라이언트 프록시를 사용하면 원격 프로시저 호출을 통해 웹 서비스 메소드를 호출할 수 있습니다. 이 프록시는 클라이언트 런타임 환경에 대해 IBM SOAP 또는 Apache Axis 1.0을 선택하는 경우에만 클라이언트 웹 프로젝트에서 작성할 수 있습니다. 그렇지 않은 경우, IBM WebSphere v6 클라이언트 런타임 환경에 대해 웹, Java, EJB 또는 응용프로그램 클라이언트 프로젝트에서 작성할 수 있습니다.

  • 웹 서비스 사용자 정의 기능

이 옵션을 사용하면 호출할 웹 서비스의 각 메소드에 대해 DB2 UDF(User-Defined Function)를 작성할 수 있습니다. 이 옵션을 사용하려면 데이터베이스에 DB2 웹 서비스 이용자 UDF 패키지 및 DB2 XML Extender를 설치해야 합니다. 작성된 UDF는 데이터베이스 정의에 추가됩니다. 모든 관련 클라이언트 중간 산출물은 웹 프로젝트에 저장됩니다.

  • 웹 서비스와 웹 서비스 클라이언트에 다른 EAR을 선택하면 런타임 오류 발생 가능성이 줄어듭니다. 클라이언트는 웹 서비스와 다른 응용프로그램이므로 웹 서비스를 응용프로그램 간 통신에 사용할 수 없습니다.

자원

아래 주제에 대한 추가 정보는 해당 링크를 참조하십시오.