샘플 프로젝트 및 사용 사례 > 사용 사례: 디지털 트윈 경험 확장하기 > Digital Twin 202: IRS(Identity Resolution Service)를 사용한 구성 > IRS를 사용하여 경험 매핑
  
IRS를 사용하여 경험 매핑
IRS를 사용하면 경험에 매핑되는 모델 템플릿의 여러 구성에 대해 확장 가능한 방식으로 구성을 만들 수 있습니다. 이러한 매핑은 cURL을 사용하여 작성되며 CLI(명령줄 인터페이스)를 Experience Service와 연결합니다. 이 섹션에서는 경험을 매핑하는 과정을 안내합니다.
1. 경험을 게시하고 이 경험에 ThingMark를 연결했는지 확인합니다.
2. GitHub에서 다음 .bat 파일을 다운로드하여 curl.exe 파일을 저장했던 동일한 폴더에 추가합니다.
mappings.bat
resolve.bat
3. 사용자가 선택한 CLI를 엽니다. 이 사용 사례에서는 명령 프롬프트를 사용했습니다. curl.exe 파일을 저장한 디렉터리로 이동합니다. 예를 들어, C:\installations입니다.
4. CLI에서 mappings를 입력합니다. 이 명령은 mappings.bat 파일을 실행하여 사용자 이름, 암호 및 Experience Service에 대한 로그인 자격 증명을 설정합니다.
* 
보안을 위해 아래 이미지에 암호가 숨겨져 있습니다.
그런 다음, cURL을 사용하여 Experience Service에 액세스하고 Experience Service와 연결된 모든 경험을 찾습니다. 목록에 게시한 모든 경험이 표시되어 있을 것입니다.
5. 그런 다음, 실행 중인 매핑의 결과를 사용자 자신의 .bat 파일에 저장하여 Vuforia Studio에서 게시할 때 생성된 속성을 편집할 수 있도록 합니다. 다음 명령을 사용하여 새 .bat 파일을 작성합니다.
mappings > mymap.bat
이 새 파일은 현재 디렉터리에 저장되며 경험에 대한 구성 가능한 템플릿을 작성하는 데 사용됩니다.
6. 방금 만든 mymap.bat 파일을 엽니다. 경험을 매핑한 결과가 표시될 것입니다.
방금 만든 프로젝트를 찾습니다. 파일의 끝에 있을 것입니다. 매핑의 value 속성을 확인하여 다음과 같은 내용을 찾아 사용자가 게시한 경험에 대한 매핑을 찾을 수 있을 것입니다.
"projects/scalingdigitaltwinexperiences202/index.html?expId=1&vumark=%7B%7Bvuforia:vumark%7D%7D"
7. 매핑의 각 속성은 아래 표에 나열되어 있습니다.
속성
설명
id
매핑의 ID 번호입니다.
key
경험에 연결된 ThingMark입니다.
value
경험의 URL입니다. URL의 형식은 path/page.html?parameters입니다. path/page.html 부분은 경험의 이름입니다. 매개 변수는 해당 값으로 매핑됩니다. 이 경우 expId는 값이 1인 자체 매개 변수이며, vumark는 값이 %7B%7Bvuforia:vumark%7D%7D인 자체 매개 변수입니다. 이러한 매개 변수는 다른 구성이 생성될 때 업데이트됩니다.
resourcetype
경험이 연결된 리소스의 유형입니다.
title
Vuforia Studio에서 정보 섹션에 사용자가 입력한 경험의 제목입니다.
createstamp
생성되는 매핑의 타임스탬프입니다.
requires
추적 요구 사항을 설정합니다.
description
프로젝트를 작성한 경우 프로젝트에 대한 설명입니다.
projectversion
프로젝트의 버전입니다.
8. .bat에서 처음으로 편집해야 하는 내용은 이 파일에서 매개 변수를 제거하는 것입니다. 파일에서 다음 속성을 완전히 제거합니다.
id
createstamp
status
projectversion
9. 그런 다음, key 속성에 대한 전체 값을 제거하고 value 속성에서 projects/myproject/index.html?expId=1 이후의 모든 내용을 제거합니다.
* 
궁극적으로 이 코드를 한 줄의 텍스트로 유지해야 하지만 아래의 .bat 파일에 있는 JSON의 서식은 읽기 쉽도록 편집되었습니다.
10. 그런 다음, value 속성에 새 매개 변수를 추가해야 합니다. 이러한 매개 변수는 이전 섹션에서 쿼드콥터 모델의 색상 및 모델에 대해 작성한 것과 동일하며 경험을 구성하는 데 사용됩니다. 이 사용 사례에서는 새 템플릿의 이름을 curriculum이라고 지정하지만 사용자가 원하는 경우 다른 이름을 지정할 수 있습니다. 다음 코드를 포함하도록 value 속성을 변경합니다.
"value":"projects/scalingdigitaltwinexperiences202/index.html?expId=1&color=%7B%7Bcurriculum:color%7D%7D&model=%7B%7Bcurriculum:model%7D%7D",
방금 추가한 텍스트를 보면 다음과 같은 패턴을 확인할 수 있습니다.
&color=%7B%7Bcurriculum:color%7D%7D
이 패턴은 &name=value의 형식을 사용하여 url로 인코딩된 질의 매개 변수입니다. 위의 예에서 namecolor이고 value{{curriculum.color}}입니다. 양쪽 중괄호는 내부의 값이 평가된다는 것을 나타내며, 이 경우에는 IRS에 추가 되는 (urn.)curriculum.color의 값을 찾습니다.
11. 경험에 매핑하려면 키를 생성해야 합니다. curriculum 템플릿에 매핑되는 아래 키를 추가합니다.
"key":"urn:curriculum:template:202"
이 단계를 수행하면 템플릿이 완성됩니다.
12. 이제 이 .bat 파일을 IRS에 대해 실행할 수 있는 명령으로 바꿔야 합니다.
명령 인터프리터에서 잘못 해석할 수 있는 문자가 있기 때문에 정보가 올바르게 해석될 수 있도록 다른 문자로 바꿔야 합니다. 메모장과 같은 편집기를 열고 다음 문자를 검색하여 바꿉니다.
검색할 문자...
바꿀 문자...
\”
%
%%
&
^&
13. 파일에 다음을 추가합니다.
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "EXPRIENCEGOESHERE" %server%/ExperienceService/id-resolution/mappings
그런 다음, EXPERIENCEGIESHERE를 위에서 편집한 텍스트 블록으로 바꿉니다.
14. 이제 명령 프롬프트에서 이 .bat 파일을 실행할 수 있습니다.
C:\installations> mybat.bat
15. 다음을 복사하여 붙여 넣을 수도 있습니다.
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{ \"key\":\" urn:curriculum:template:202\", \"value\":\"projects/scalingdigitaltwinexperiences202/index.html?expId=1^&color=^%7B^%7Bcurriculum:color^%7D^%7D^&model=^%7B^%7Bcurriculum:model^%7D^%7D\", \"resourcetype\":\"Experience\",\"title\" : { \"en\":\"ScalingDigitalTwinExperiences202\" }, \"requires\" : [ \"AR-tracking\",\"w320dp\" ], \"description\":{ \"en\":\"Curriculum demo\" } }" %server%/ExperienceService/id-resolution/mappings
16. mappings 명령을 실행하여 새 매핑이 Experience Service 템플릿에 추가되었는지 확인합니다. 매핑 목록 끝에 새 매핑이 표시되어 있을 것입니다.
17. 템플릿이 경험에 매핑되면 구성을 특정 속성에 매핑해야 합니다. 이러한 속성은 쿼드콥터의 모델 및 색상에 대해 작성한 템플릿의 매개 변수를 구성하는 데 사용됩니다. 첫 번째 구성의 이름을 config 1으로 지정하겠습니다.
a. 아래 코드를 사용하여 첫 번째 구성 매개 변수인 color 매개 변수를 설정합니다. color 매개 변수는 앞서 Vuforia Studio에서 작성한 응용 프로그램 매개 변수와 상호 작용하기 때문에 첫 번째 단계에서 작성한 모든 색상을 매개 변수 입력으로 사용할 수 있습니다. 이 예에서는 모델의 색상을 자주색으로 설정했습니다.
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:color:purple\"}" %server%/ExperienceService/id-resolution/mappings
b. 다음으로, color 매개 변수를 매핑한 방법과 동일하게 model 매개 변수를 매핑합니다. 이번에는, 모델 매개 변수로 2를 사용하여 두 번째 쿼드콥터 모델 옵션에 매핑합니다. 두 개의 매핑을 작성했으므로 urn:curriculum:config:1 키가 이제 다음 두 값 모두에 매핑됩니다.
urn:curriculum:color:purple
urn:curriculum:model:2
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:model:2\"}" %server%/ExperienceService/id-resolution/mappings
c. mappings를 다시 실행하면 구성 매핑이 IRS에 추가된 것을 확인할 수 있습니다.
18. 구성 및 해당 매개 변수를 작성한 후에는 구성을 템플릿에 다시 매핑해야 합니다. 앞서 urn:curriculum:template:202을 경험에 템플릿으로 매핑했습니다. 이제,urn:curriculum:config:1urn:curriculum:template:202에 다시 매핑합니다.
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:template:202\"}" %server%/ExperienceService/id-resolution/mappings
19. 구성을 매핑하는 마지막 단계는 사용자가 작성한 구성에 ThingMark를 매핑하는 것입니다. 이 특정 ThingMark를 스캔할 때마다 이 고유한 모델 구성이 나타납니다.
* 
해당하는 경우 특정 ThingMark 인스턴스를 입력해야 합니다.
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:vuforia:vumark:YOURTHINGMARK\", \"value\": \"urn:curriculum:config:1\"}" %server%/ExperienceService/id-resolution/mappings
20. mappings를 한 번 더 실행합니다. 이 섹션에서 지금까지 작성한 모든 매핑이 나열될 것입니다.
21. 참고로 이 섹션에서 작성한 매핑이 아래 이미지에 나와 있습니다.
매핑 테스트
1. CLI에서 다음 명령을 실행합니다.
resolve urn:vuforia:vumark:<Your_ThingMark>
이 명령을 실행하면 해당 ThingMark에 지정된 모든 해결 내용을 텍스트 형식으로 배열합니다. color=purple&model=2 대신 color=^%7B^%7Bcurriculum:color^%7D^%7D^&model=^%7B^%7Bcurriculum:model^%7D^%7D가 표시되면 이 매핑이 성공적으로 추가된 것입니다. 모델 매개 변수가 원래 URL에 있던 자리 표시자 변수를 대체했을 것입니다.
2. 그런 다음, Vuforia View를 열고 urn:curriculum:config:1에 지정된 ThingMark를 스캔합니다. 사용자가 작성한 쿼드콥터의 구성이 보이면 IRS를 사용하여 첫 번째 구성을 성공적으로 추가한 것입니다.
3. 이제 하나의 구성을 성공적으로 작성했으므로 사용자가 작성한 커리큘럼 템플릿을 사용하여 config:2config:3라는 두 개의 추가 구성을 직접 만들어보십시오. 동일한 ThingMark 또는 다른 ThingMark에 구성을 추가할 수 있습니다. 다음 매핑을 직접 만들어보십시오.
4. Vuforia View를 사용하여 새로 작성한 구성을 확인합니다.
ScalingDigitalTwinExperiences202.bat라는 부분 완성 .bat 파일을 GitHub에서 사용할 수 있습니다. 이 .bat를 실행하여 세 가지 다른 구성에 대해 11-17단계의 모든 매핑을 실행할 수 있습니다. mappings.batresolve.bat 파일도 GitHub에서 사용할 수 있습니다. 파일을 실행하기 전에 사용자 이름, 암호, 서버, ThingMark 번호를 추가하고 프로젝트 이름(해당되는 경우)을 편집해야 합니다. 다른 파일을 저장한 디렉터리에서 CLI에 ScalingDigitalTwinExperiences202를 입력하여 파일을 실행합니다.
최종 결과는 3개 구성입니다. ThingMark가 (1) 구성에 매핑되고 이 구성은 (2) 템플릿으로 이동하는 과정에서 다양한 속성/값을 수집하며 템플릿은 (3) 변수(색상, 모델)를 수집된 값으로 바꿉니다. 결과는 확인된 변수 입력을 가진 경험입니다. 이 예에서는 ThingMark가 빨간색 모델 1 항목인 구성 2에 매핑되어 있습니다. 최종 경험은 빨간색 쿼드콥터를 보여줍니다.
계속해서 Digital Twin 301을 진행하여 ThingWorx 및 IRS의 구성 작업을 시작하겠습니다.