설치 및 기본 사용

런처 서비스 설치

PC에 런처 서비스 설치하고 윈도우 서비스 등록하기

런처 서비스는 윈도우 서비스로 등록되어 동작합니다. 런처를 사용하기 위해서는 먼저 윈도우 서비스를 등록해야 합니다.

1

설치 파일을 내려받아 관리자 권한으로 실행합니다.

설치 시 관리자 권한으로 실행하지 않은 경우에는 서비스 동작 시 오류가 발생할 수 있습니다.

런처 서비스 설치 시 설치 마법사 화면이 표시되지 않도록 하려면 "/VERYSILENT", "/SILENT" 옵션을 사용할 수 있습니다. "/VERYSILENT" 옵션은 설치 파일 실행 시 아무런 메시지 없이 서비스가 설치됩니다. "/SILENT" 옵션은 사용자의 조작 없이 설치 진행 상태만 표시하고 서비스가 설치됩니다.

TPLSvc_Setup.exe /VERYSILENT
TPLSvc_Setup.exe /SILENT

2

설치 마법사 화면이 실행됩니다. [Insatll] 버튼을 클릭하고 설치를 진행합니다. 설치가 완료되면 윈도우 서비스로 등록되고 자동으로 실행됩니다.

[제어판 > 시스템 및 보안 > 관리자 도구 > 서비스] 항목에서 등록된 서비스가 동작하는 것을 확인할 수 있습니다. 해당 창에서 서비스를 중지하거나 다시 시작할 수 있습니다.

PC에서 런처 서비스 삭제하기

1

설치된 앱(프로그램) 목록에서 TPLSvc 항목을 찾아 [제거] 버튼을 클릭합니다.

2

삭제 여부를 확인합니다. [예] 버튼을 클릭하면 삭제가 진행됩니다. 등록된 서비스가 해제되고 런처 서비스가 삭제됩니다.

특정 포트에서 서비스가 실행하도록 지정하기

런처 서비스는 사용하는 포트가 지정되어 있는데, 이를 변경하고자 하는 경우에는 명령 프롬프트에서 직접 파라미터를 지정해 서비스를 실행할 수 있습니다.

1

런처 서비스가 설치된 경로를 확인합니다. 아래 경로에서 설치된 실행 파일을 확인할 수 있습니다.

C:\Program Files (x86)\TPLSvc\TPLSvc.exe

2

관리자 권한으로 명령 프롬프트를 실행하고 아래와 같이 파라미터를 지정해 윈도우 서비스를 해제할 수 있습니다. 런처 서비스를 삭제하는 것이 아니라 등록된 서비스만 해제합니다.

TPLSvc_Setup.exe –r false

3

서비스를 다시 등록하기 위해서는 아래와 같이 실행합니다.

TPLSvc_Setup.exe –r true

런처는 통신 방식에 따라 지정된 포트 중 하나를 사용합니다. 런처가 실행되는 시스템에 다른 서비스가 해당 포트를 이미 사용하고 있다면 포트를 변경해 사용할 수 있습니다. 이런 경우에는 서비스 등록 시 포트를 지정하는 파라미터(-p 포트번호1, -p 포트번호2 ... -p 포트번호n)를 추가로 지정합니다.

통신 방식

기본 포트

포트 지정 파라미터

HTTP

7895 ~ 7935

-p

HTTPS

7936 ~ 7966

-httpsp

WS

7970 ~ 7981

-wsp

WSS

7982 ~ 7992

-wssp

예를 들어 HTTP 통신 시 8080포트와 8888포트를 사용하고자 한다면 아래와 같이 서비스를 등록합니다.

TPLSvc_Setup.exe –r true –p 8080 –p 8888

동작 방식

런처 서비스와 웹브라우저 간 동작 방식을 간단하게 설명하면 아래 표와 같습니다.

런처 서비스


웹브라우저

(2) id 할당 및 저장 후 id 반환

(1) 신규 id 요청 (create)

(4) 필수 속성 저장 후 결과값 반환

(3) 필수 속성 설정 (setproperty)

메서드 실행 후 결과값 반환

메서드 실행 요청 (method)

속성 정보 반환

속성 정보 요청 (getproperty)

이벤트 정보 반환

이벤트 정보 요청 (event)

id에 해당하는 정보삭제

id에 해당하는 정보삭제요청 (destroy)

기본 설정

주소 설정

주소 설정은 필수 부분과 추가 부분으로 구분할 수 있습니다. 필수 부분에 추가 부분을 조합해 사용합니다.

필수 부분

로컬주소, 포트, 예약어(launcher)

추가 부분

플랫폼명, 타임스탬프

http://127.0.0.1:7895/launcher/nexacro/123456789
http://127.0.0.1:7895/launcher/xplatform/123456789
http://127.0.0.1:7895/launcher/miplatform/123456789

기본 요소 설정

기본적으로 설정하는 요소는 platform, action, id, value입니다. 각 용도에 맞게 설정합니다.

platform

플랫폼을 나타내는 문자열입니다. 제품에 따라 아래 3가지 중 하나를 지정할 수 있습니다.

nexacro, xplatform, miplatform

action

런처 서비스에 요청할 동작 문자열을 지정합니다. 아래와 같은 동작을 지정할 수 있습니다.

동작

설명

create

런처 서비스에서 최초 id를 할당받을 때

destroy

할당받은 id에 해당하는 정보를 런처 서비스에서 삭제

setproperty

속성 설정

getproperty

속성 정보 확인

method

메서드 실행

event

이벤트 관련 정보 확인

check

런처 서비스 버전 정보 확인

id

런처 서비스로부터 할당받은 문자열이며 반드시 최초 동작 시 요청해야 합니다.

value

동작에 대한 구체적인 JSON 형식의 정보이며 동작에 따라 구성이 다릅니다.

$r_title(최초 id를 할당받기 위한 JSON : value 없음, 결과로 id가 전달됨)

var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'create';
//objXP.id = ''; // 통신이 성공하면 정보가 채워지므로 생략해도 무관합니다.
$r_title(관련 속성 설정을 위한 JSON)
var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'setproperty';
objNexacro.value = {"property name" : property value, ... };
$r_title(설정된 속성값을 확인하기 위한 JSON)
var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'getproperty';
objNexacro.value = {"property name" : "", ... };
$r_title(메서드 호출을 위한 JSON)
var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'method';
objNexacro.value = {"method name": {"param": method parameter array, "result": }};
$r_title(이벤트 정보를 확인하기 위한 JSON)
var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'event';
objNexacro.value = {"event name" : {...}};
$r_title(런처 서비스 버전 정보 확인을 위한 JSON)
var objNexacro = new Object(); 
objNexacro.platform = 'nexacro';
objNexacro.action = 'check';
objNexacro.value = {"getlauncherversion": {}};

데이터 전송

데이터 전송은 HTTP/HTTPS 통신(GET, POST)과 WebSocket 통신으로 구분합니다.

$r_title(GET 방식은 주소 뒤에 ?와 JSON 형식의 문자열이 첨부됩니다)
var objNexacro = new Object();
var xhrObject = new XMLHttpRequest();
xhrObject.onreadystatechange = resultProcess;
var jsonData = JSON.stringify(objNexacro);
var openurl = "http://127.0.0.1/launcher/nexacro/"+new Date().getTime();
xhrObject.open("GET", openurl+"?"+jsonData, "true");
xhrObject.send(null);
$r_title(POST 방식은 send 메서드 파라미터에 JSON 형식의 문자열이 첨부됩니다)
var objNexacro = new Object();
var xhrObject = new XMLHttpRequest();
xhrObject.onreadystatechange = resultProcess;
var jsonData = JSON.stringify(objNexacro);
var openurl = "http://127.0.0.1:80/launcher/nexacro/"+new Date().getTime();
xhrObject.open("POST", openurl, "true");
xhrObject.send(jsonData);
$r_title(WebSocket 통신 시 데이터 전송)
var objNexacro = new Object();
var openurl = "ws://127.0.0.1:7970/launcher/nexacro/"+new Date().getTime();
var objWebSocket = new WebSocket(openurl);
var jsonData = jsonData = JSON.stringify(objNexacro);
if (objWebSocket != null) {
	objWebSocket.send(jsonData);
} else {
	return null;
}

데이터 전송은 JSON 형식의 문자열을 구성하면 어떤 식으로든 처리할 수 있습니다. stringify 메서드를 지원할 수 없거나 직접 설정하기 원한다면 다음과 같은 형태로 문자열을 만들어 처리합니다.

create
'{"platform":"nexacro","action":"create"}'
launch method
id값은 create에서 받은 값으로 치환해야 합니다.
'{"platform":"nexacro","id":"12345678","action":"method", "value":{ "launch":
null }}'

통신 결과 처리

JSON 형식의 문자열 데이터를 적절히 변환해 처리합니다.

$r_title(HTTP/HTTPS 통신 결과 처리)

var result = xhrObject.responseText; // xhrObject는 XMLHttpRequest임
var objResult = eval('(' + result + ')');
$r_title(WebSocket 통신 결과 처리)
function onMessage(evt) {
	var data = evt.data;
	var objResult = eval('(' + result + ')');
...
}

처리결과가 성공이라면 result 문자열이 'success' 로 처리됩니다.

if(objResult.result == "success" && objResult.id.length > 0)
{
	objNexacro = objResult; // objXP는 송신정보를 담고 있었던 객체임
}	else	{
	window.console.log("error!!!");
}

TPLSvcAgent 사용

특정 환경에서 런처 서비스 실행 시 윈도우 운영체제 보안 제약 사항으로 서비스 실행에 필요한 일부 사용자 정보를 확인할 수 없습니다. 이를 우회하기 위해 별도의 에이전트 파일(TPLSvcAgent.exe)을 제공하며 multisession 속성 설정값에 따라 사용자 정보 필요시 에이전트 파일을 실행해 정보를 확인합니다.

TPLSvcAgent.exe 파일과 multisession 속성은 1.1.0.29 이상 버전에서 지원합니다.

지원 기능

multisession 속성값을 true로 설정하고 에이전트 실행 시 아래와 같은 기능을 지원합니다.

가상환경 설정에 따라 사용자 정보 확인 기능을 사용하지 못할 수도 있습니다.

사용 방법

에이전트 실행을 활성화하기 위해서는 런처 서비스 구동을 위한 setproperty 함수에서 multisession 속성값을 true로 설정합니다.

objNexacro.action = 'setproperty';
objNexacro.value = {
...
	"multisession": true,
...
};

가상환경에서 사용자 정보 확인 시에는 최초 id 할당 시(create action) 콜백 함수에서 id 값을 document의 title 속성값으로 설정해 주어야 합니다.

function createProcess() {
...
	if (bMultiSession == true)
	{
		top.document.title = objNexacro.id;
	}
...
}