소스 아티팩트 이주 프로세스의 우수 사례

WebSphere® Studio Application Developer Integration Edition 소스 아티팩트 이주 프로세스에는 많은 우수 사례가 있습니다.

다음 예제에서는 새 프로그래밍 모델로 이주하는지 확인하도록 WebSphere Studio Application Developer Integration Edition 서비스를 디자인하는 방법을 표시합니다.
  • 가능할 때마다 지정 활동을 사용하십시오(고급 변환이 필요할 때에만 사용되는 변환기 서비스와는 반대임). 중간 컴포넌트는 SCA 모듈이 변환기 서비스를 호출하기 위해 생성되어야 하기 때문에 이 방법을 사용해야 합니다. 또한 WebSphere Integration Developer에 5.1에서 작성된 변환기 서비스에 대한 특수 도구 지원이 없습니다. (변환기 서비스의 작동으로 변경해야 하는 경우 WSDL 또는 XML 편집기를 사용하여 WSDL 파일에 임베드된 XSLT를 수정해야 합니다.)
  • WS-I(Web Services Interoperability) 스펙 및 6.0에서 선호하는 스타일별로 WSDL 메시지당 하나의 파트를 지정하십시오.
  • WSDL doc-literal 스타일이 6.0에서 선호하는 스타일이므로 이를 사용하십시오.
  • 모든 복합 유형에 이름이 지정되었는지 확인하여 각 복합 유형이 대상 이름 공간 및 이름으로 고유하게 식별되도록 하십시오. 다음은 복합 유형 및 해당 유형의 요소를 정의할 때 권장하는 방법을 보여줍니다. (요소를 사용하는 요소 정의 다음에 복합 유형 정의 표시)
    <schema attributeFormDefault="qualified"
    elementFormDefault="unqualified"
    targetNamespace="http://util.claimshandling.bpe.samples.websphere.ibm.com"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://util.claimshandling.bpe.samples.websphere.ibm.com">
    <complexType name="Duration">
    <all>
    <element name="hours" type="int"/>
    <element name="minutes" type="int"/>
    <element name="days" type="int"/>
    </all>
    </complexType>
    <element name="DurationElement" type="tns:Duration"/>
    </schema>
    다음 예제는 익명의 복합 유형입니다(익명 복합 유형 정의가 포함된 요소). 익명의 복합 유형은 SDO가 XML로 직렬화되는 경우에는 문제를 일으킬 수도 있기 때문에 사용을 피해야 합니다.
    <schema attributeFormDefault="qualified"
    elementFormDefault="unqualified"
    targetNamespace="http://util.claimshandling.bpe.samples.websphere.ibm.com"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://util.claimshandling.bpe.samples.websphere.ibm.com">
    <element name="DurationElement">
    <complexType>
    <all>
    <element name="hours" type="int"/>
    <element name="minutes" type="int"/>
    <element name="days" type="int"/>
    </all>
    </complexType>
    </element>
    </schema>
  • 외부 이용자를 위한 서비스를 출력하는 경우 IBM® Web Service를 사용하여(Apache SOAP/HTTP와 반대로서) 서비스 배치 코드를 생성하십시오. IBM Web Service는 6.0에서 직접 지원되고 Apache 웹 서비스는 지원되지 않기 때문입니다.
  • 이주 중에 사용자가 수행해야 하는 재구성의 양을 최소화하기 위해 5.1에서 WSDL 및 XSD 파일을 구성하는 두 가지 방법이 있습니다. 6.0에서, WSDL 및 XSD 파일과 같은 공유 아티팩트는 BI 서비스가 참조하기 위해 BI 프로젝트(비즈니스 통합 모듈라이브러리)에 위치해야 합니다.
    • 둘 이상의 서비스 프로젝트가 공유하는 모든 WSDL 파일들은 서비스 프로젝트가 참조할 수 있는 Java™ 프로젝트에 보존하십시오. 6.0으로의 이주 중에 5.1 공유 Java 프로젝트와 동일한 이름을 갖는 새로운 비즈니스 통합 라이브러리를 작성합니다. 5.1 공유 Java 프로젝트의 모든 아티팩트를 라이브러리로 복사하여 해당 아티팩트를 사용하는 서비스 프로젝트를 이주할 때 이주 마법사에서 아티팩트를 해석할 수 있도록 하십시오.
    • 서비스 프로젝트가 참조하는 모든 WSDL/XSD 파일의 로컬 사본은 서비스 프로젝트 자체에 보존하십시오. WebSphere Studio Application Developer Integration Edition 서비스 프로젝트는 WebSphere Integration Developer에서 비즈니스 통합 모듈로 이주하며 모듈은 다른 모듈에 대한 종속성이 없습니다. (WSDL 또는 XSD 파일을 공유하기 위해 다른 서비스 프로젝트에 대한 종속성이 있는 서비스 프로젝트는 분명하게 이주하지 않을 수 있습니다.)
  • Business Process Choreographer Generic Messaging API(Generic MDB)는 6.0에서 지원되지 않으므로 사용하지 마십시오. MDB 인터페이스 오퍼링 동적 바인딩은 6.0에서 사용할 수 없습니다.
  • 특별한 버전의 프로세스에만 한정된 생성된 세션 Bean을 호출하는 대신 BPC(Business Process Choreographer) 일반 EJB API를 사용하십시오. 이러한 세션 Bean은 V6.0.0.0에서 생성되지 않습니다.
  • 동일한 오퍼레이션에 대해 복수 응답을 갖는 비즈니스 프로세스가 있는 경우, 프로세스 중에 해당 오퍼레이션에 대한 모든 응답에서 응답마다 한 세트의 클라이언트 설정만이 지원되는 6.0의 클라이언트 설정과 동일한 설정의 클라이언트가 있는 지 확인하십시오.
  • 다음 가이드라인에 따라 BPEL Java 스니펫을 디자인하십시오.
    • 사용자 정의 Java 클래스에 WSIFMessage 매개변수를 전송하지 마십시오 - 가능한 WSIFMessage 데이터 형식에 따라 달라지지 않도록 하십시오.
    • 가능하면 WSIF 메타데이터 API 사용을 피하십시오.
  • BPEL Java 스니펫에서 BPEL 변수와 동일한 이름을 갖는 로컬 변수의 선언을 피하십시오. 6.0에서 BPEL 변수는 스니펫에서 직접 액세스할 수 있으므로 동일한 이름을 갖는 로컬 변수는 충돌을 유발할 수 있습니다.
  • WSDL PortTypes/Messages에서 생성된 Java/EJB 스켈레톤은 WSIF 클래스에 종속되기 때문에(예: WSIFFormatPartImpl) 가능하면 하향식 EJB 또는 Java 서비스 작성을 피하십시오. 대신 먼저 Java/EJB 인터페이스를 작성하고I Java 클래스/EJB 주위에 서비스를 생성하십시오(상향식 접근).
  • soapenc:Array 유형을 참조하는 WSDL 인터페이스의 작성 또는 사용을 피하십시오. 이 유형의 인터페이스는 기본적으로 SCA 프로그래밍 모델에서 지원되지 않습니다.
  • 상위 레벨 요소가 배열 유형(maxOccurs 속성이 1보다 큼)인 메시지 유형의 작성을 피하십시오. 이 유형의 인터페이스는 기본적으로 SCA 프로그래밍 모델에서 지원되지 않습니다.
  • WSDL 인터페이스를 정확하게 정의하십시오. 가능하면 xsd:anyType 유형을 참조하는 XSD complexTypes를 피하십시오.
  • EJB 또는 Java Bean에서 생성하는 임의의 WSDL 및 XSD의 경우 대상 이름 공간을 고유하게 지정(Java 클래스 이름 및 패키지 이름은 대상 이름 공간으로 나타남)하여 WebSphere Process Server V6으로 이주할 때 충돌을 피하십시오. WebSphere Process Server V6에서 동일한 이름 및 대상 이름 공간을 갖는 두 개의 서로 다른 WSDL/XSD 정의는 허용되지 않습니다. 이러한 상황은 웹 서비스 마법사 또는 Java2WSDL 명령을 대상 이름 공간에 대한 명시적인 지정 없이 사용할 경우에 흔히 발생합니다. (대상 이름 공간은 EJB 또는 Java Bean의 패키지 이름에 대해 고유하지만 클래스 자체에 대해서는 고유하지 않기 때문에 웹 서비스가 동일한 패키지 안에서 두 개 이상의 EJB 또는 Java Bean에 대해 생성될 때 문제가 발생합니다.) 이 문제는 웹 서비스 마법사에서 사용자 정의 패키지를 이름 공간 맵핑에 지정하거나 -namespace Java2WSDL 명령행 옵션을 사용하여, 생성된 파일의 이름 공간이 주어진 클래스에 대해 고유하도록 만들면 해결됩니다.
  • 가능하면 모든 WSDL 파일에 고유한 이름 공간을 사용하십시오. WSDL 1.1 스펙에 따르면 동일한 이름 공간을 갖는 두 개의 서로 다른 WSDL 파일을 가져오는 것에는 제한사항이 있으며 WebSphere Integration Developer 6.0에서 이러한 제한사항은 엄격하게 적용됩니다.
관련 태스크
소스 아티팩트 이주 확인
소스 아티팩트 이주 실패에 대한 작업
관련 참조
이주 프로세스 제한사항(소스 아티팩트 이주 시)

피드백
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.