태스크 개요: 웹 서비스 애플리케이션 구현

이 주제에서는 웹 서비스 사용에 대해 소개합니다. WebSphere® Application Server에서는 다양한 Java™ 프로그래밍 모델에 기반하여 개발 및 구현되는 웹 서비스를 지원합니다. Java EE(Java Platform, Enterprise Edition) 및 Java EE 이외의 플랫폼을 포함하여 다중 플랫폼에서 운영하는 경우 웹 서비스를 사용합니다.

시작하기 전에

웹 서비스 구현이 비즈니스 프로세스에 유용한지 여부를 결정합니다.

이 태스크 정보

우수 사례: IBM® WebSphere Application Server는 JAX-WS(Java API for XML-Based Web Services) 프로그래밍 모델 및 JAX-RPC(Java API for XML-based RPC) 프로그래밍 모델을 지원합니다. JAX-WS는 JAX-RPC 프로그래밍 모델에서 제공되는 기반을 확장하는 차세대 웹 서비스 프로그래밍 모델입니다. 전략적 JAX-WS 프로그래밍 모델을 사용하면 표준 기반 어노테이션 모델의 지원을 통해 웹 서비스 및 클라이언트의 개발이 간소화됩니다. JAX-RPC 프로그래밍 모델과 애플리케이션이 계속해서 지원된다고 해도 구현이 쉬운 JAX-WS 프로그래밍 모델을 이용하여 새 웹 서비스 애플리케이션과 클라이언트를 개발하십시오.

지원되는 표준 및 스펙의 전체 목록은 웹 서비스 스펙과 API 문서를 참조하십시오.

웹 서비스 애플리케이션 구현은 독립형 시스템으로 작동하는 비즈니스 인프라 내부 또는 외부의 시스템을 함께 통합하는 쉬운 방법입니다. 예를 들어, 고객 정보 데이터베이스는 독립형 애플리케이션이지만, 회계 애플리케이션에서 고객 데이터에 액세스하려고 합니다. 이때 고객 데이터베이스에 대한 웹 서비스를 작성한 후 회계 애플리케이션을 웹 서비스 클라이언트로 사용할 수 있습니다. 이제 회계 애플리케이션은 고객 정보에 액세스할 수 있습니다. 웹 서비스를 구현하면 이 두 애플리케이션이 효율적인 방식으로 정보를 공유할 수 있습니다.

웹 서비스는 기존 애플리케이션 및 정보 기술 자산에 쉽게 적용되기 때문에 새 기회를 처리하기 위해 새 솔루션을 빠르게 개발, 배치, 개조할 수 있습니다. 웹 서비스가 더 널리 사용되면서 서비스 풀이 확장되었고 인터넷을 통한 JIT(Just-In-Time) 애플리케이션 및 비즈니스 통합에 대한 보다 강력한 모델 개발이 촉진되고 있습니다.

제공된 단계에 따라 애플리케이션 서버에서 웹 서비스 애플리케이션을 사용할 수 있습니다.

프로시저

  1. 웹 서비스 사용을 계획하십시오. 웹 서비스 계획을 보다 강력하게 설정하는 방법을 학습하려면 웹 서비스의 모든 컴포넌트를 검토하십시오.
  2. (선택사항) 기존 웹 서비스를 마이그레이션하십시오.

    Java EE 환경은 호환성을 강조하므로 최신 JAX-WS 및 JAXB 스펙에 대한 지원을 제공하는 대부분의 애플리케이션 서버는 계속해서 이전 JAX-RPC 스펙을 지원합니다. 결과적으로 기존 웹 서비스는 JAX-RPC 기반이지만, 최신 웹 서비스는 JAX-WS 및 JAXB를 사용하여 개발된다는 점을 시사합니다.

    그러나 시간이 지나면 애플리케이션은 수정되고 재작성되기 때문에 JAX-RPC 기반 웹 서비스를 JAX-WS 및 JAXB에 기반한 웹 서비스로 마이그레이션하는 것이 최상의 전략인 경우가 생길 수 있습니다. 이로 인해 벤더는 새 프로그래밍 모델에서만 사용 가능한 서비스 품질(QoS)의 개선사항을 제공할 수 있습니다. 예를 들어, SOAP 1.2 및 SOAP MTOM(Message Transmission Optimization Mechanism) 지원은 JAX-RPC가 아닌 JAX-WS 2.x 및 JAXB 2.x 프로그래밍 모델에서만 사용 가능합니다. JAX-RPC 웹 서비스를 JAX-WS 및 JAXB 웹 서비스로 마이그레이션하는 경우 우수 사례 및 예제에 대해 학습하려면 웹 서비스 마이그레이션 우수 사례를 참조하십시오.

    참고: JAX-WS 기능을 사용하려는 기존의 JAX-RPC 애플리케이션은 JAX-WS 프로그래밍 모델을 사용하여 재작성해야 합니다.

    Apache SOAP에 기반하여 웹 서비스를 사용하고 있으며 지금 Java EE 스펙에 대한 웹 서비스를 개발 및 구현하려는 경우 5.0.2 이전의 모든 4.0 버전 및 5.0 버전에서 개발된 클라이언트 마이그레이션을 마이그레이션해야 합니다. 더 자세히 학습하려면 Java EE 표준 정보에 기반하여 Apache SOAP 웹 서비스를 JAX-RPC 웹 서비스로 마이그레이션을 참조하십시오.

  3. 웹 서비스 애플리케이션을 개발하십시오. 다음 방법 중 하나로 웹 서비스를 개발할 수 있습니다.
    1. JAX-WS를 사용하여 기존 WSDL 파일에서 웹 서비스를 개발하십시오.

      JavaBeans 또는 엔터프라이즈 Bean 애플리케이션의 서비스 인터페이스를 설명하는 기존 WSDL(Web Services Description Language) 파일로 시작하여 JAX-WS 웹 서비스를 작성할 수 있습니다. 일반적으로 WSDL 파일은 애플리케이션 모델링 프로세스 중에 정의됩니다. 기존 서비스 정의 또는 WSDL 파일을 사용하여 새 애플리케이션을 생성하는 작업을 웹 서비스 개발에 대한 하향식 접근 방식이라고 합니다.

    2. JAX-WS를 사용하여 웹 서비스 애플리케이션을 개발하십시오.

      JAX-WS(Java API for XML-Based Web Services) 프로그래밍 모델을 사용하여 웹 서비스를 개발할 수 있습니다. JAX-WS는 표준 어노테이션 기반 모델을 통해 애플리케이션 개발을 단순화하여 웹 서비스 애플리케이션 및 클라이언트를 개발합니다. XML 및 Java 오브젝트의 바인딩 규칙에 대한 공통 세트를 사용하면 Java 애플리케이션에서 XML 데이터 및 프로세스 기능을 쉽게 통합할 수 있습니다. 추가 개선사항 세트를 사용하면 웹 서비스 요청에서 이미지나 파일과 같은 2진 첨부 파일을 최적의 조건으로 전송할 수 있습니다.

      버전 9.0에는 JAX-WS 엔드포인트로 싱글톤 세션 엔터프라이즈 Bean에 대한 지원이 포함됩니다. 싱글톤 세션 Bean은 특정 웹 서비스 엔드포인트에 대해 수신된 모든 요청을 처리하기 위해 웹 서비스 엔드포인트 구현 Bean의 단일 인스턴스가 필요한 상황에 유용합니다. Bean의 단일 인스턴스가 요청에서 상태 정보를 공유해야 할 수도 있습니다. 일반적으로 각 요청을 처리하기 위해 웹 서비스 엔드포인트 구현 Bean의 새 인스턴스가 작성됩니다.

      기존 JavaBeans이나 Stateless 또는 싱글톤 세션 엔터프라이즈 Bean에서 JAX-WS 웹 서비스 개발을 시작하는 경우 어노테이션을 사용하여 JAX-WS 웹 서비스로 Bean을 표시할 수 있습니다. Bean에 @WebService 또는 @WebServiceProvider 어노테이션을 추가하면 JAX-WS 웹 서비스로 Bean을 정의합니다. JAX-WS 웹 서비스로 표시되는 엔터프라이즈 Bean은 EJB 3.0 이상 모듈로 패키지되어야 합니다.

      기존 애플리케이션을 웹 서비스로 변환하는 작업을 웹 서비스 개발의 상향식 접근 방식이라고 합니다. 이 프로세스는 기존 서비스 또는 WSDL(Web Services Description Language) 파일로 시작하는 대신, 구현으로 시작하기 때문에 상향식이라고 합니다.

    3. JAX-WS 웹 서비스 클라이언트를 개발 및 배치하십시오. JAX-WS 웹 서비스에 액세스하고 호출할 수 있는 웹 서비스 클라이언트는 Java EE(Java Platform, Enterprise Edition)용 웹 서비스 스펙에 기반하여 개발됩니다. 애플리케이션 서버는 JAX-WS 프로그래밍 모델에 기반하는 EJB(Enterprise JavaBeans™) 클라이언트, Java EE 애플리케이션 클라이언트, JSP(JavaServer Pages) 파일 및 서블릿을 지원합니다.
    4. JAX-RPC를 사용하여 기존 WSDL 파일에서 웹 서비스 애플리케이션을 개발하십시오.

      웹 서비스를 개발하는 하향식 접근 방식을 사용하여 엔터프라이즈 Bean 구현의 서비스 인터페이스를 설명하는 기존 WSDL 파일로 시작하여 JAX-RPC 웹 서비스를 작성할 수 있습니다.

    5. JAX-RPC를 통해 웹 서비스 애플리케이션을 개발하십시오.

      JAX-RPC(Java API for XML-based RPC) 프로그래밍 모델을 사용하여 웹 서비스를 개발할 수 있습니다. 기존 JavaBeans 또는 엔터프라이즈 Bean으로 JAX-RPC 웹 서비스를 개발하는 경우 WSDL 파일을 개발해야 합니다. 기존 JavaBeans 또는 엔터프라이즈 Bean을 사용한 후 웹 서비스의 구현을 사용할 수 있습니다.

    6. JAX-RPC 웹 서비스 클라이언트를 개발 및 배치하십시오. Java EE(Java Platform, Enterprise Edition) 스펙 및 JAX-RPC(Java API for XML-based remote procedure call) 스펙에 대한 웹 서비스에 기반하여 웹 서비스 클라이언트를 개발할 수 있습니다. 애플리케이션 서버는 JAX-RPC 프로그래밍 모델에 기반하는 EJB(Enterprise JavaBeans™) 클라이언트, Java EE 애플리케이션 클라이언트, JSP(JavaServer Pages) 파일 및 서블릿을 지원합니다.
    7. 서비스 통합 기술을 통해 웹 서비스 사용
      서비스 통합 버스의 웹 서비스 사용을 통해 다음 목적을 달성할 수 있습니다.
      • 버스 목적지에서 사용 가능한 내부적으로 호스팅된 서비스를 웹 서비스로 사용 가능하도록 설정합니다.
      • 버스 목적지에 내부적으로 외부 웹 서비스를 사용 가능하도록 설정합니다.
      • 웹 서비스 게이트웨이를 사용하여 기존 서비스(내부적으로 호스팅된 서비스 또는 외부 웹 서비스)를 게이트웨이에서 제공하는 새 웹 서비스에 맵핑합니다.

    웹 서비스 주소 지정(WS-Addressing), WSRF(Web Services Resource Framework), 웹 서비스 트랜잭션(WS-Transaction) 지원을 활용하도록 웹 서비스를 개발할 수 있습니다.

    • WS-Addressing SPI 사용: 추가 고급 웹 서비스 주소 지정 태스크 수행.

      웹 서비스 주소 지정(WS-Addressing)을 활용하도록 웹 서비스를 개발할 수 있습니다. 이 기능은 웹 서비스 주소를 지정하는 표준 방식을 사용하고 메시지에서 주소 지정 정보를 제공하여 웹 서비스 간 상호 운용성을 지원합니다.

    • 웹 서비스 자원 프레임워크를 사용하여 Stateful 웹 서비스를 작성하십시오.

      애플리케이션 서버에서 WSRF(Web Services Resource Framework) 지원을 사용하면 WS-Resource로 Stateful 웹 서비스를 구현하고 WS-Addressing 엔드포인트 참조를 사용하여 해당 서비스를 참조할 수 있습니다.

    • 웹 서비스에 대한 트랜잭션 또는 비즈니스 활동을 조정하도록 WS-Transaction 정책을 사용하십시오.

      WS-Transaction은 WS-AtomicTransaction, WS-BusinessActivity 및 WS-Coordination 스펙을 포함하는 상호 운용성 표준입니다. 애플리케이션 서버에서의 WS-AT(Web Services Atomic Transaction) 지원은 웹 서비스 환경에 대한 트랜잭션 서비스 품질(QoS)을 제공합니다. 분산 웹 서비스 애플리케이션 및 이 애플리케이션을 사용하는 자원은 분산 글로벌 트랜잭션에 참여할 수 있습니다. 애플리케이션 서버에서의 WS-BA(Web Services Business Activity) 지원을 사용하여, 다른 시스템에서의 웹 서비스는 원자적 트랜잭션보다 더 느슨하게 결합한 활동을 조정할 수 있습니다. 이러한 활동은 원자적으로 롤백하기 어렵거나 불가능할 수 있으므로 오류가 발생하면 보상 과정이 필요합니다.

    • WS-Policy를 사용하여 표준 형식으로 정책을 교환하십시오.

      WS-Policy는 서비스 제공자가 표준 형식으로 정책 요구사항을 내보낼 수 있도록 웹 서비스의 정책을 설명하고 전달하는 데 사용되는 상호 운용성 표준입니다. 클라이언트는 서비스 제공자 요구사항과 고유한 기능을 결합하여 특정 상호작용에 필요한 정책을 설정할 수 있습니다.

  4. 웹 서비스를 어셈블하십시오..

    웹 서비스를 어셈블할 때 필요한 내용 및 파트를 어셈블하는 순서(예: 엔터프라이즈 아카이브(EAR) 파일)를 참조하십시오.

  5. 웹 서비스를 배치하십시오.

    웹 서비스에 대해 구성되고 사용 가능한 EAR 파일을 배치하는 데 필요한 단계를 참조하십시오.

  6. 배치된 웹 서비스를 관리하십시오.

    웹 서비스 애플리케이션이 배치되면 보안 설정을 구성하고, 배치 디스크립터 및 WSDL 문서를 보고, 웹 서비스 포트 범위를 설정하고 정책 세트 및 서비스 제공자를 관리할 수 있습니다. 이 태스크는 관리 콘솔 또는 명령행 도구를 사용하여 수행할 수 있습니다.

  7. 웹 서비스를 보안하십시오.
  8. WSDL 파일을 게시하십시오.

    웹 서비스 애플리케이션을 설치하고 선택적으로 엔드포인트 정보를 수정한 후에 업데이트된 엔드포인트 정보를 포함하는 WSDL(Web Services Description Language) 파일이 필요할 수도 있습니다. 이 정보를 사용할 수 있도록 WSDL 파일을 게시하는 데 필요한 단계를 참조하십시오.

  9. 웹 서비스 애플리케이션 성능을 모니터링하십시오.

    웹 서비스 요청을 처리하는 데 필요한 시간을 측정하려면 PMI(Performance Monitoring Infrastructure) 사용을 참조하십시오.

  10. 웹 서비스 문제점을 해결하십시오.

    명령행 도구, Java 컴파일 오류, 클라이언트 런타임 오류 및 예외, 직렬화 및 직렬화 해제 오류, 웹 서비스 보안에서 인증 확인 및 권한 보유 실패를 포함하여 웹 서비스를 개발, 구현, 사용하는 데 사용된 다양한 프로세스의 문제점 해결을 참조하십시오.

다음 예제에서는 비즈니스에서 웹 서비스를 사용하는 방법을 보여줍니다.

꽃집 소유자는 웹을 통해 고객의 주문을 받으려고 합니다. 이 소유자는 꽃 공급자의 도매상을 찾고 제품 가격을 책정하고, 나중에 꽃 주문에 대한 계약을 체결하여 프로세스를 시작합니다.

꽃집 소유자는 웹 서비스를 사용하여 꽃 공급자의 도매상을 찾을 수 있습니다. 새 공급자를 찾는 한 가지 방법은, UDDI(Universal Description, Discovery and Integration) 레지스트리를 사용하여 잠재적 공급자를 검색하는 것입니다. 공급자를 선택하면 레지스트리는 꽃집 소유자의 기준을 만족하는 꽃집 유통업자와 계약하는 방법에 대한 정보를 다시 전송합니다.

꽃집 소유자는 잠재적 각 공급자의 WSDL 파일을 확보하여 각 공급자의 가격 목록을 요청할 수 있습니다. 그리고 공급자의 웹 페이지에서 WSDL을 다운로드하거나 이메일로 받거나 공급자의 UDDI 레지스트리에서 WSDL을 검색할 수 있습니다.

WSDL에서는 프로시저 호출을 설명합니다. 애플리케이션 서버를 사용하는 경우 프로시저 호출은 JAX-RPC 또는 JAX-WS 프로시저 호출입니다. 이 프로시저 호출 유형 중 하나는 가격 목록을 검색합니다. 또한 WSDL 파일은 요청을 전송하는 URL(Universal Resource Locator)도 지정합니다.

이제 꽃집 소유자는 각 공급자에서 수신한 가격을 비교하고, 어떤 공급자와 사업을 함께 운영할지 결정하고 향후 이행할 주문에 대한 준비를 수행해야 합니다. 이제 꽃집은 최상의 가격을 제공하는 공급자와 통신하기 위해 웹 서비스를 사용하여 웹상에서 상품을 판매하고 주문 프로세스를 완료할 수 있습니다. 상품 가격 목록은 웹 사이트에 게시해야 하며, 고객이 꽃을 주문하는 메커니즘이 필요합니다.

꽃 공급자의 웹 서비스 클라이언트는 꽃집 서버에 배치됩니다. 고객이 웹을 통해 꽃을 구입하는 트랜잭션을 작성하는 경우 주문은 프로시저 호출을 통해 공급자에게 전송됩니다. 공급자는 주문 번호와 운송 날짜를 포함하는 확인을 전송하여 응답합니다. 그리고 공급자는 인벤토리를 유지보수하고 꽃집 소유자가 청구 및 고객 주문 관리를 처리합니다.

마찬가지로, 각 공급자의 카탈로그에서 꽃집 카탈로그를 자동으로 작성할 수 있습니다. 공급자가 고객에게 직접 전달하는 경우 주문 추적 조회를 공급자의 주문 추적 시스템에 직접 전달할 수 있습니다. 또한 공급자는 웹 서비스를 사용하여 꽃집의 주문 송장을 전송할 수 있습니다. 이전에 팩스나 우편으로 양식으로 수동으로 채워야 하는 프로세스는 현재 자동으로 수행할 수 있으므로 꽃집과 공급자 모두 노동 비용을 절감할 수 있습니다.

웹 서비스를 이용하면 꽃집에서 더 많은 인벤토리를 확보할 수 있으므로 보다 효율적입니다. 이 경우 상품 유지보수 오버헤드는 존재하지 않으며, 꽃집은 그렇지 않을 경우 보유하지 못했을 제품을 고객에게 제공할 수도 있습니다. 웹을 이용한 꽃 판매는 추가 제품으로 다른 매장이나 자원을 투자하는 오버헤드가 없으므로 꽃집의 자본을 증가시킵니다.

자세한 시나리오는 WebSphere에서 가상의 온라인 화원 소매상(Plants)의 이야기를 소개하는 웹 서비스 시나리오 개요와 이 소매상에서 웹 서비스 개념을 통합한 방식에 대한 정보를 참조하십시오.

JAX-WS 및 JAX-RPC 웹 서비스를 설명하는 추가 샘플은 Information Center의 샘플 절을 참조하십시오.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_usewbs
파일 이름:twbs_usewbs.html