19.배포(환경)

이번 장에서는 XPLATFORM 배포방법에 대해 기술합니다.

19.1XPLATFORM 배포 전 준비사항

XPlatform 배포 구성 시 필요한 XPlatform 배포 파일 다운로드
가) XPlatform 홈페이지에 접속합니다.
    http://www.miplatform.co.kr
나) Download - XPlatform 메뉴를 선택
다) XPlatform 9.2 버전 다운로드
(홈페이지에는 최신버전의 XPlatform 배포파일만 제공 됩니다.
개발 시 사용하던 XPlatform 버전을 다운로드 받아 놓지 않았을 경우 고객지원센터에 문의 하시기 바랍니다.)

그림 19-1xp_filedown

배포 구성 시에는 테스트가 끝난 UXStuio(XPlatform) 버전과 동일한 버전으로 배포를 합니다.

19.1.1UXStudio(XPlatform) 버전확인 방법

UXStudio 가 실행 된 상태에서 help 의 About UXStudio 를 선택 후 Build 버전 확인

그림 19-2xp_about

19.1.2XPLATFORM 9.2 배포 샘플 다운로드

가) XPlatform 홈페이지 접속
     http://www.miplatform.co.kr
나) Support - XPlatform - TIP 선택
다) "배포" 제목 검색 XPlatform9.2 배포샘플 파일 다운로드

그림 19-3xplatform92_download

19.2배포의 의미

19.2.1배포란?

배포의 의미

배포란 서비스를 위하여 필요한 프로그램 모듈을 사용자용 PC에 설치하는 작업을 뜻합니다. 
개발된 XPlatform 시스템 화면을 사용자용 PC에서 사용하려면 XPlatform 프로그램을 다운로드 후 설치해야 합니다. 
 
이 과정을 '배포'라고 하며, 사용자는 배포 후 원하는 서비스를 이용할 수 있습니다.

배포의 단계

배포는 XPlatform Launcher(XPLauncher) 배포, XPlatformEngine 배포 XPlatformComponent 배포가 이루어집니다.

XPLauncher배포 및 XPLATFORM Engine 배포 단계

WebBrower 를 통해 CAB 파일 형태로 배포가 진행이 됩니다
<OBJECT ID="XLauncher" CLASSID="CLSID:A30D5481-7381-4dd9-B0F4-0D1D37449E97" width="0" height="0" codebase="./Download/XPLATFORM9.2_XPLauncher.cab#VERSION=1,0,0" onError="fn_objectOnError()">

XPLATFORM Component 배포

XPLATFORM Engine이 구동이 될 때 배포가 엔진을 통해 배포가 진행 됩니다.

19.3배포샘플을 통한 배포방법 설명

배포샘플은 XPlatform9.2 버전을 사용하였습니다.

19.3.1배포샘플 파일 이해

배포샘플을 다운로드 및 압축을 해제 후 해당 폴더를 열게 되면 Sample 프로젝트 폴더 및 실제 다운로드에 필요한 파일이 있는 Install 폴더를 볼 수 있습니다.

Sample_PRJ 폴더

실제 고객사에서 구현한 프로젝트 소스가 들어있다고 생각하시면 됩니다.

Install 폴더

XPlatform 프로그램이 Internet Explorer Brower 에서 자동으로 설치 되기 위해 필요한 파일이 존재 합니다. 
XPlatform 배포를 위해 Install 폴더 내의 Download 폴더의 파일을 이용하게 되며 해당 파일들은 고객사에서 마지막으로 테스트가 끝난 XPlatform 배포 파일들로 변경하면 됩니다.

19.3.2홈페이지에서 다운로드 받은 XPLATFORM ALL 파일 이해

본 문서에서는 2013년 4월 30일 버전의 파일(2013.4.30.1(9.2.0.180).zip)를 이용
고객사에서 다운로드 받았던 XPlatform 배포 파일을 압축 해제 후 폴더내의 파일들의 종류를 
설명합니다.
날짜정보는 고객사에서 사용하는 버전에 따라 다르게 표시됩니다.

2013.4.30.1(9.2.0.180).zip

XPlatform 배포를 위한 엔진 및 기본 컴포넌트 파일들
(배포 시 사용 되는 파일은 아래 3가지 파일만 사용)
XPLATFORM9.2_XPLauncher.cab, XPLATFORM9.2_SetupEngine.cab, XPLATFORM9.2_Component.zip 
파일내의 dll 파일

XPLATFORM9.2_SetupDeveloper.exe

XPlatform 개발자도구

XPLATFORM9.2_XPLauncher.cab

XPLauncher 파일 - IE 브라우저를 통해 배포 시 사용

XPLATFORM9.2_SetupEngine.cab

XPlatform 엔진 파일 - IE 브라우저를 통해 배포 시 사용

XPLATFORM9.2_Component.zip

XPlatform 기본 Component 파일

XPLATFORM9.2_VersionInfo_20130430_1.txt

배포 시 필요한 버전 정보 기입 파일
※ 일반적으로 MiUpder는 321 버전을 사용하면 되며 보안 이슈가 있을 경우 아래 표를 참조하여 Updater 파일을 사용합니다

배포 파일의 종류(확장자) 이해(CAB)

캐비닛 파일(Cabinet File) 이라 하며 압축포맷의 일종이며 웹 브라우저(Internet Explorer)를 통해 사용자 PC에 자동으로 응용프로그램 설치 시 사용 할 수 있다.
( IE 를 통해 CAB 파일을 배포 시 HTML 의 OBJECT 태그를 이용하여 자동 설치가 가능)

19.3.3배포 파일의 역할

모듈명

주요기능

XPLauncher

Icon 이미지를 다운로드 합니다.

단축아이콘(shortcut)을 만들어 줍니다.

XPlatform Engine을 구동시켜 줍니다.

XPlatformAX

XPlatform Engine을 Web Brower(IE) 상에서 구동시켜 줍니다

XPlatform Engine

컴포넌트들을 배포합니다.

ADL, FDL 파일들을 배포합니다.

화면 UI를 출력합니다.

npXPLauncherPlugin

IE 이외의 브라우저에서 XPLauncher 와 같은 역할을 합니다.

npXPlatformPlugin

IE 이외의 브라우저에서 XPlatformAX 와 같은 역할을 합니다.

19.3.4XPLATFORM 배포 프로세스의 이해

XPLATFORM 의 배포는 Object(인터넷익스플로러) 혹은Embed(크롬, 파이어폭스 등) 태그를 이용하여 CAB 파일 혹은 exe 파일을 사용자 PC에 XPLATFORM Engine 파일이 설치 된 후 XPLATFORM Engine이 구동이 되며 엔진 구동 시 XADL 파일을 읽어 들여 클라이언트 라이선스를 확인 후 TypeDfinition의 default_typedef.xml 을 읽어 XPLATFORM Component 파일들을 사용자 PC에 배포 합니다.
1) Web Brower를 통한 XPLATFORM Engine 및 XPLauncher 파일 배포
2) XPLATFORM Engine 구동 시 XPLATFORM_Client_License.xml 파일 확인
3) default_typedef.xml 정보를 통한 Component 파일 배포

19.3.5XADL 파일의 이해

XPlatform(UX Studio)를 통해 개발 된 시스템을 실행하기 위한 환경설정 정보 담고 있음
(이 파일은 UX Studio에 의하여 관리 됩니다.)
<ADL version="1.0"> 
<TypeDefinition url="default_typedef.xml"/> ------ (가) 
<GlobalVariables url="globalvars.xml"/> ---------- (나) 
<Application id="XP_Sample" licenseurl="../License/XPLATFORM_Client_License.xml …>  --- (다) 
<Layout> ----------------------------------------- (라)
<MainFrame id="mainframe" …> 
<ChildFrame formurl="Base::SampleForm.xfdl"…/> --- (마)
</MainFrame> 
</Layout> 
</Application> 
<Script><![CDATA[ ]]></Script> 
</ADL>
(가) 컴포넌트 파일들의 배포정보가 default_typedef.xml에 정의 되어있음을 알 수 있음
(나) XPlatform 개발 프로젝트에서 사용하는 Global 변수들이 globalvars.xml에 저장 되어 
      있음을 알 수 있음
(다) Id 는 XP_Sample 이며 license가 있는 서버 url 위치는 상위폴더의 License 
     폴더에 XPLATFORM_Client_License.xml 파일이 존재함을 알 수 있음
(라) Layout이 MainFrame아래에 ChildFrame 하나만 있는 것으로 보아 Application Model이 
     싱글 프레임 형태인 것을 알 수 있음
(마) 맨 처음 화면에 풀력되는 화면이 Base::SampleForm.xfdl 임을 알 수 있음

19.3.6Default_typedef.xml 파일의 이해

default_typedef.xml은 XPlatform개발 프로젝트의 Component들의 배포 정보를 담고 있습니다
<?xml version="1.0" encoding="utf-8"?> 
<TypeDefinition> 
<Components> 
<Component type="Bin" id="Div" classname="Div" module="XComCmp" version="1000"/> ---(가) 
<Component type="Bin" id="Button" classname="Button" module="XComCmp" version="1000"/> 
...
중략
...
<Component type="Bin" id="Splitter" classname="Splitter" module="XComCmp" 
version="1000"/> 
<Component type="Bin" id="GroupBox" classname="GroupBox" module="XComCmp" 
version="1000"/> 
<Component type="Bin" id="ProgressBar" classname="ProgressBar" module="XComCmp" 
version="1000"/> 
<Component type="Bin" id="Activex" classname="ActiveX" module="XAxCmp" version="1000"/> 
<Component type="Bin" id="Dataset" classname="Dataset" module="XPLATFORMLib" 
version="1000"/> 
</Components> 
<Services> 
<Service prefixid="Base" type="form" url="./Base/Win32/" cachelevel="dynamic" 
codepage="" language="" version="" communicationversion=""/>
</Services> 
<Update> 
<Item systemtype="win32" url="http://127.0.0.1/ XP_Components "/> --- (나) 
</Update> 
</TypeDefinition>
(가) Div Componet에 대한 배포 정보를 담고 있습니다.
      - 배포되는 컴포넌트는 Div Component 입니다.
      - Div Component를 위해서는 XComCmp.dll 필요합니다.
      - XComCmp.dll의 version은 1000 입니다.
※ 각 Component에 필요한 dll 파일의 버전정보는 해당 dll 파일의 속성 메뉴에서 자세히를 눌러 실제 dll 가지고 있는파일버전 정보를 입력해 주시면 됩니다.

그림 19-4xp_fileversion

(나) 배포 될 Component 파일들이 있는 위치를 지정합니다.
      - http://127.0.0.1 Web Server Root 의 XP_Components 폴더에 dll 파일들이 위치 되어있음을 
        의미하며 개발자가 웹 서버의 경로에 맞게 수정을 합니다.

19.4배포 스크립트의 이해

19.4.1설명에 필요한 샘플소스 다운로드

http://www.miplatform.co.kr/faq/data/docs/XPlatform92_배포페이지샘플.zip

19.4.2index.html

그림 19-5xp_index

1 fn_onload()함수의 이해
자바스크립트를 이용하여 Internet Explorer Browser(MSIE)경우 x_installAX.html페이지 호출,
타 브라우저(크롬, 파이어폭스 등)일 경우 x_installPlugin.html페이지 호출

19.4.3x_installAX.html

그림 19-6xp_installAX

1 fn_launchX() 함수의 이해
Object 태그를 사용하여 XPLaucher모듈을 XLauncher ID로 선언 후 XPlatform Engine을
전용브라우저를 실행 시키기 위한 함수
2 Object 태그
인터넷 익스플러러 브라우저에서 ActiveX 컨트롤러를 구동 시키기 위해 사용하는 태그(TAG)
예)
<object id='선언할 object 이름' classid="clsid:제품클레스ID" width='0' height='0'
Codebase="cab 파일 위치#VERSION=cab 파일 버전정보"></boject>

그림 19-7xp_installAX2

1 fn_load() 함수의 이해
x_installAX.html이 열릴때 가장 먼저 실행되는 함수이며,
Object 태그 선언시 오류가 발생하지 않았을 경우 전용브라우저로 실행을 할지
Internet Explorer에 Embed형태로 실행할 지를 결정하는 함수입니다.
2 fn_close()함수의 이해
자바스크립트를 이용하여 Internet Explorer를 닫는 함수입니다.
열려있는 IE화면을 닫을 때 사용할 수 있습니다.

그림 19-8xp_installAX3

1 Object 태그를 이용하여 XPLATFORM Engine 및 XPLauncher Cab 파일을 배포 sKey값은
고유한 값 이어야합니다.

19.4.4XPlatformAX.html

그림 19-9xp_XPlatformAX

1 fn_onload() 함수의 이해
XPlatform 구동을 위해 <BODY> 에서 선언한 XPlatform Object 를 통해 XPlatform 구동을 위한 필수 값인 key, xadl 를 지정 후 run() 를 통해 XPlatform 을 구동 합니다.
예)
<OBJECT ID="XPlatformAXCtrl" CLASSID="CLSID:43C5FE00-DD32-4792-83DB-19AE4F88F2A6" width="1000" height="800"></OBJECT>

19.4.5xp_installPlugin.html

그림 19-10xp_installPlugin

1 fn_load() 함수의 이해
Embed 태그를 통해 선언한 플러그인이 정상적으로 설치가 되었는지 여부를 확인 후
전용브라우저 혹은 WebBrowser(크롬, 파이어폭스 등)에 Embed할 지 여부를 설정합니다.

그림 19-11xp_installPlugin2

1 XPLATFORM9.2_SetupEngine.exe 파일을 설치 후에는 WebBrowser를 반드시
재 실행해야만 plugin구동이 가능합니다.
2 embed 태그에 대한 이해
embed 태그를 응용프로그램(예:XPLATFORM)이 크롬, 파이어폭스 등 인터넷 익스플러러를
제외한 웹브라우저에서 동작되기 위해 plugin형태로 제공이 될 때 plugin을 선언하여 크롬, 파이어폴스 등에서 사용할 수 있도록 정의할 수 있는 테그