DOORS용 OSLC DXL 서비스

HTTP 또는 HTTPS 통신 프로토콜을 사용하여 IBM® Engineering Requirements Management DOORS® (DOORS) DXL 스크립트를 실행하기 위해 OSLC DXL 서비스를 사용할 수 있습니다.
참고: 예제에는 OSLC DXL 서비스 유틸리티를 사용하여 DXL 파일을 서비스로 설치하는 단계가 포함되어 있습니다. 이 유틸리티는 DOORS 버전 9.6.1.3 이상에서 사용 가능합니다. 이 유틸리티 없이 DXL 파일을 설치하려는 경우에는 이전 릴리스의 문서를 참조하십시오.

OSLC(Open Services for Lifecycle Collaboration) 기술은 IBM 또는 다른 회사에서 개발한 라이프사이클 관리 애플리케이션 및 도구에서 통합을 용이하게 하는 데 사용됩니다. OSLC 서비스 발견은 확장 가능합니다. 따라서 개발자는 구현된 표준에서 현재 사용 가능하지 않거나 포함시키기에는 너무 한정적이라 판단되는 서비스를 현재 또는 이후 버전에 추가할 수 있습니다.

OSLC Requirements Management(RM) 스펙 버전 2의 DOORS 구현에는 HTTP 또는 HTTPS 프로토콜을 사용하여 DOORS DXL 스크립트를 실행하는 데 사용할 수 있는 API가 포함되어 있습니다. 이 API는 DOORS 데이터에 안전하게 액세스하고 이를 조작할 수 있도록 하여 통합에 값을 추가합니다. 이는 DXL 스크립트 라이브러리의 개념을 기반으로 합니다. 관리자는 OSLC DXL 서비스 사용자 인터페이스를 사용하여 쉽게 DXL 스크립트를 추가하고, 편집하고 제거할 수 있습니다.

다음 단계에서는 OSLC DXL 서비스를 사용하기 위한 프로세스를 설명합니다.
  1. OSLC DXL 스크립트를 찾습니다.
  2. 해당 스크립트를 호출하여 OSLC 호출의 필수 매개변수를 패키지합니다. DXL 서비스 URI에 대해 GET 요청을 제출하면 작성자가 제공하는, 스크립트에 대한 도움말 정보가 포함된 응답이 제공됩니다. DXL 서비스 URI에 대해 선택적 매개변수가 있는 PUT 요청을 제출하면 이 서비스가 실행됩니다.
  3. 이 스크립트가 상호 운용 서버에서 실행됩니다.
  4. 결과가 게시됩니다.

스크립트는 서비스 인터페이스에서 사용 가능한 DXL 스크립트를 결정할 수 있는 DOORS 관리자에 의해 제어되고 사용자 정의됩니다. 관리자는 "runDXL"과 같이 잠재적 보안 위험으로 간주되는 특정 함수를 호출하는 기능을 잠글 수 있습니다. 사용자 인터페이스 위젯과 같은 특정 DXL은 지원되지 않습니다.

서비스 발견은 OAuth로 보호되므로 OSLC DXL 서비스를 사용하는 경우에는 사용자 이름 및 비밀번호를 입력하여 인증해야 합니다.

일반적인 OSLC DXL 서비스 사용 단계는 다음과 같습니다.
  1. DXL 스크립트를 생성합니다.
  2. DXL 스크립트를 서비스로 설치합니다.
  3. 서비스 발견을 통해 서비스를 찾습니다.
  4. 서비스를 호출합니다.
  5. 응답에서 리턴 값을 추출합니다.

  1. 다음 코드를 포함하는 helloWorld.inc라는 DXL 파일을 작성하십시오.
    void getHelloString(string language)
    {
    	string hello = null
    
    	if ("French" == language)
    	{
    		hello = "Bonjour le monde"
    	} 
    	else if ("Finnish" == language)
    	{
    		hello = "Hei maailma"
    	} 
    	else if ("Latin" == language)
    	{
    		hello = "Ave mundi"
    	}
    	else 
    	{
    		hello = "Hello world"
    	}
    
    	setDxlServiceResult hello
        
    	print hello "\n"
    }
  2. helloWorld.inc 파일을 /addins/services 디렉토리에 복사하십시오. 이 디렉토리의 기본 위치는 C:\Program Files\IBM\Rational\DOORS\9.version\lib\dxl\addins\services입니다.
  3. DOORS 클라이언트를 열고 관리자로 로그인하십시오.
  4. DXL를 설치하려면 파일 > OSLC > DXL 서비스를 클릭하십시오.
  5. OSLC DXL 서비스 창에서 추가를 클릭하십시오.
  6. OSLC DXL 서비스 추가 창에서 다음 값을 입력하십시오.
    • 이름: helloWorld
    • 설명: Hello world in several languages
    • DXL: #include <addins/services/helloWorld.inc>
    • 함수 이름: getHelloString
    helloWorld라는 서비스가 작성됩니다.
    OSLCDXLService os = null
    string err = null
    
    string dxlCode = "#include <addins/services/helloWorld.inc>\n"  
    err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString")  
    if (!null err) 
    { 
    	print err 
    }  
    else  
    { 
    	print "Installed Service\n" 
    }
  7. 서비스를 호출합니다. 이 URI는 http://servername:portnumber/dwa/rm/dxl/helloWorld와 같습니다.
  8. acceptcontent-type 헤더를 항목 application/rdf+xml로 설정하십시오.
  9. 요청 컨텐츠가 다음 코드와 같은지 확인하십시오.
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:Arguments>
      <doors:arguments>English</doors:arguments>
      </doors:Arguments>
    </rdf:RDF>
  10. 서비스에 인수를 전달하려면 <doors:arguments> 요소를 사용하십시오. 필수 인수를 나타내는 요소 텍스트에 문자열을 입력하십시오. DXL 서비스는 이 문자열을 서비스 DXL 함수가 필요로 하는 인수로 변환합니다. 이전 예제를 보면 getHelloString 함수로 전달되는 단일 매개변수 English를 볼 수 있습니다. DXL 함수에서 두 개의 매개변수를 필요로 하는 경우 요청의 형태는 다음 예제와 같습니다.
    <doors:Arguments>
    <doors:arguments>English,French</doors:arguments>
    </doors:Arguments>
    수신 DXL 서비스는 쉼표로 구분된 목록을 별도의 EnglishFrench 문자열로 분할합니다.
  11. 문자열 유형이 아닌 인수가 있는 경우에는 DXL을 사용하여 이를 적절한 유형으로 변환해야 합니다. 예를 들어, 인수가 정수인 경우에는 intOf 조작을 사용하여 쉼표로 구분된 목록에서 추출된 문자열을 int 유형 값으로 변환할 수 있습니다. 그 후 이 값을 메소드에 전달할 수 있습니다.
    응답 컨텐츠의 코드는 다음과 같습니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld>
      <doors:result>Hello world</doors:result>
      </doors:DxlServiceResult>
    </rdf:RDF>

이 서비스는 마샬링(marshalling)을 수행하지 않습니다. 인수를 하나의 문자열로 지정하십시오. DXL 스크립트는 값을 필요한 개별 매개변수로 변환하기 전에 문자열에 이러한 값을 구문 분석하여 추출합니다.

샘플 파일은 DOORS 클라이언트 설치에 포함되어 있습니다. 샘플 파일 hierarchy.dxl은 모듈 계층 구조에 대한 정보를 얻기 위해 OSLC DXL 서비스를 사용하는 방법을 보여줍니다.

비디오 아이콘 비디오

Jazz.net 채널
소프트웨어 교육 채널

학습 아이콘 과정

IoT 아카데미
스킬 게이트웨이

질문 아이콘 커뮤니티

Jazz.net
Jazz.net 포럼
Jazz.net 라이브러리

지원 아이콘 지원

IBM 지원 센터 커뮤니티
배치 위키