====== xFrame5 아키텍처 가이드 ====== ===== 실행 환경 아키텍처 ===== xFrame5 솔루션의 실행 환경 아키텍처는 아래와 같이 사용자 시스템, 서버 시스템, 형상 관리 시스템으로 구성되며, 서버 시스템 내부에는 WEB/WAS 서버 S/W 내에 xFrame5 관련 파일이 구성된다. {{ .:architecture_guide:00.png?nolink |}} ===== 개발 아키텍처 ===== xFrame5는 HTML5기반의 UI개발 솔루션으로 Any Device, Any Brower, Any Server Platform을 지원하는 One Source Multi Use를 지원합니다. {{ .:architecture_guide:01.png?nolink |}} ===== 전용 브라우저 ===== xFrame5 PC용 전용 브라우저는 크롬 브라우저의 기반 소스인 크로미엄 오픈 소스 기반의 엔진에 기반한 브라우저입니다. 범용 브라우저에서 제공이 불가능한 다양한 부가 기능을 제공합니다. {{ .:architecture_guide:02.png?nolink |}} |< 100% 150px - >| ^ 구분 ^ 설명 ^ | 주요특징 | * 범용 브라우저 업데이트에 독립적인 업데이트 환경 제공 * 로컬 파일 모드 지원 (로컬 파일에 존재하는 화면 소스를 기준으로 UI 표시) * 타이틀바 아이콘/닫기 버튼 커스터마이징 기능 제공 * 주소바 숨김 기능 * 프로그램 이름, 프로그램 아이콘 커스터마이징 제공 * 크롬 브라우저와 동일한 기능/성능/개발 환경 제공 * 32비트/64비트용 브라우저 제공 * 엑셀 DRM 처리를 위한 엑셀 오토메이션 읽기 기능 제공 | | 주요기능 | * 로컬 파일 직접 제어 API 제공 (읽기/쓰기/삭제/복사/이동) * 외부 브라우저 기동 및 URL 호출 기능 * 실행 인스턴스 개수 제어 기능, 브라우저 종료 제어 기능 * 외부 프로세스 기동 및 종료 기능 * IME 처리 기능 (한글/영문) * 브라우저 크기 변경 가능 여부 및 크기 변경 기능 * 로그 파일 저장 및 로그 레벨 제어 기능 제공 * 캐쉬 저장 및 크기/삭제 제어 기능 제공 * 크로스 도메인 보안 정책 제어 기능 * 인증서 오류 무시 정책 제어 기능 | ===== XPlus 확장 기능 ===== xFrame5 솔루션의 범용 Browser 형태의 내부 구조는 아래와 같이 범용 브라우저 기반하에 HTML5 기반 업무 화면 표시 영역과 xPlus5 기반 기능 확장 영역으로 구성되며, 각 영역간 통신은 WebSocket 통신 프로토콜을 이용하여 수행된다. {{ .:architecture_guide:03.png?nolink |}} ===== 모바일 하이브리드 앱 ===== 모바일 하이브리드 앱은 일반 모바일 WEB 환경에서 제공하지 못하는 다양한 네이티브(Native) 앱 기능을 제공하기 위해서, HTML5 환경에서 JavaScript로 연계를 위한 모바일 하이브리드 앱 기능 연계 모듈을 제공합니다. {{ .:architecture_guide:04.png?nolink |}} |< 100% 150px - >| ^ 구분 ^ 설명 ^ | 주요특징 | * 모바일 디바이스 장비 정보 획득 * 전화 걸기/문자 보내기/메일 보내기 * 진동, 소리, 카메라 플레이 * 연락처, 앨범 열기 * 앱 종료, 타 앱 연동 * 앱 업데이트 기능, 앱 강제 업데이트 기능 * QR 코드 읽기, NFC 읽기 기능 * PUSH 메시지 연동 기능 * 외부 디바이스 연동 커스트마이징 기능 제공 * 다양한 모바일 키보드 입력 방식 지원 * 다양한 터치 이벤트 처리 * 화면 모드 (가로/세로) 지정 및 고정 기능 | | 보안 | * 보안 바이러스 외부 앱 기능 기능 (예: Droid-X) * 외부 HTML 보안 키보드 연동 (예: Open Web nFilter) * 외부 앱 난독화, 위변조탐지, 안티해킹 솔루션 연동 (Android 전용 앱 보호 서비스) (예: FxShield) | ===== 초기 화면 실행 아키텍처 ===== xFrame5 솔루션의 초기 화면 로딩 절차 및 실행 절차 아키텍처는 아래와 같다. {{ .:architecture_guide:05.png?nolink |}} xFrame5 솔루션의 초기 화면 로딩 절차 및 실행 절차 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | xFrame Viewer 파라미터 처리 | * xFrameViewer를 품고 있는 HTML 또는 JavaScript 파일에서 xFrameViewer에게 전달되는 파라미터 정보를 처리한다. * 파라미터에는 화면 정보를 로드하는 방법 및 경로 정보가 포함되어 있다. | | 2 | 스타일 로드 | * xFrame5 프로젝트에서 정의한 스타일 파일을 로드한다. | | 3 | Global Module 로드 | * 각각의 업무 화면에서 공통적으로 호출되어 사용되는 Global Module 정보를 Global Module 목록 파일 정보를 이용하여 로드한다. | | 4 | Global xDataSet 로드 | * 각각의 업무 화면에서 공통적으로 사용할 수 있는 Global xDataSet 정보를 Global xDataSet 목록 파일 정보를 이용하여 로드한다. | | 5 | 초기 화면 로드 | * xFrameViewer의 파라미터 중에 “MAINFRAMESCREEN”에 해당하는 화면을 로드한다. | ===== 화면 실행 아키텍처 ===== xFrame5 솔루션의 업무 화면 로딩 절차 및 실행 절차 아키텍처는 아래와 같다. {{ .:architecture_guide:07.png?nolink |}} xFrame5 솔루션의 업무 화면 로딩 절차 및 실행 절차 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 화면 로딩 및 표시| * 화면 로딩시 해당 화면 XML 파일내의 “외부 컴포넌트 정보”, “Attribute Map 정보”, “UI 콘트롤 속성” 정보를 분석하여 외부 리소스 파일들을 화면내에 로딩하고 표시한다. * “Attribute Map 정보”를 이용하여 UI 콘트롤의 초기 속성을 설정한다. | | 2 | 화면 이벤트 처리 및 로직 수행| * 화면 XML 파일 내에 UI 콘트롤 이벤트 정의에 정의된 이벤트가 발생하면, 화면 스크립트 파일의 해당 함수가 호출된다. * 화면 스크립트 파일의 함수는 화면 내 변수 및 “Global Module”내에 있는 변수 및 함수를 이용하여 비즈니스 로직을 수행한다. | | 3 | Global Module 로드 | * 송수신 데이터 처리를 업무 서버로 데이터를 송수신하기 전에 송수신될 데이터의 정보를 이용해서 데이터를 조립/처리하는 과정이다. * “I/O Map 정보”에 정의된 데이터를 “xDataSet 정보”와 “Global xDataSet 파일” 정보를 이용해서 처리한다. | | 4 | Global xDataSet 로드 | * 업무 서버와 xFrame-Viewer내에 내장된 통신 어댑터 또는 외부 통신 어댑터를 이용해서 데이터 송수신을 수행한다 | ===== 배포환경 아키텍처 ===== ==== WEB/WAS가 하나의 시스템으로 구성 및 공유 디스크 사용 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:09.png?nolink |}} 상세 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 파일 이행| * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. * 각 시스템은 XAdmin은 서버 관리 기능을 통해서 모두 “MASTER” 시스템으로 등록합니다. | | 2 | 파일 시스템 공유 | * 각 시스템은 외장 디스크 볼륨을 공유하여 사용합니다. | | 3 | 파일 다운로드 및 접근 | * L4 스위치의 가상 IP에 접속하여 WEB 서버를 통해서 필요한 파일들을 “사용자 시스템”에 다운로드합니다. | ==== WEB/WAS가 하나의 시스템으로 구성 및 로컬 디스크 사용 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:11.png?nolink |}} 상세 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 파일 이행| * 운영자는 XAdmin UI를 통해서 “MASTER” 시스템으로 등록된 시스템에 접속합니다. * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. * 각 시스템은 XAdmin은 서버 관리 기능을 통해서 모두 한 시스템을 “MASTER” 시스템으로 다른 시스템은 “SLAVE” 시스템으로 등록합니다. * “MASTER” 시스템에만 백업본이 관리됩니다. | | 2 | 파일 시스템 동기화 | * 마스터 시스템에서 파일 이행시 “SLAVE” 시스템으로 등록된 시스템과 HTTP 통신 또는 FTP 통신을 통해 파일을 동기화 합니다. * 동기화 방식은 XAdmin을 통해서 지정할 수 있습니다. * FTP 통신 방식을 사용할 경우, FTP 서버가 설치되어 있어야 하며, XAdmin을 통해서 FTP 사용자 ID와 Password를 등록해야 합니다. | | 3 | 파일 다운로드 및 접근 | * L4 스위치의 가상 IP에 접속하여 WEB 서버를 통해서 필요한 파일들을 “사용자 시스템”에 다운로드합니다. | 장애 처리 절차 |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 마스터 서버가 장애인 경우 | *“SLAVE” 시스템에 XAdmin으로 접속하여, “SLAVE” 시스템의 정보를 “MASTER” 시스템으로 변경합니다. *XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. *XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. | | 2 | 장애 발생 시스템이 복구된 경우 | * “MASTER”로 설정된 시스템에 접속하여, 이행 이력을 확인하여, 장애 발생 시간동안 배포된 파일 목록을 확인합니다. * 마스터 관리 메뉴를 통해서 해당 파일들을 로컬로 다운로드 합니다. * 로컬로 다운로드된 파일들을 다시 업로드/등록/결재/이행 절차를 수행하여 배포합니다. | | 3 | 서버 구성 정보 복구 | * “MASTER” 시스템의 정보를 변경한 경우, 다시 서버 정보를 원복합니다. | ==== WEB/WAS가 분리된 시스템으로 구성 및 공유 디스크 사용 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:14.png?nolink |}} 상세 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 파일 이행 | * 운영자는 XAdmin UI를 통해서 “MASTER” 시스템으로 등록된 시스템에 접속합니다. * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. * 각 시스템은 XAdmin은 서버 관리 기능을 통해서 모두 한 시스템을 “MASTER” 시스템으로 다른 시스템은 “SLAVE” 시스템으로 등록합니다. * “MASTER” 시스템에만 백업본이 관리됩니다. | | 2 | 파일 시스템 동기화 | * 마스터 시스템에서 파일 이행시 “SLAVE” 시스템으로 등록된 시스템, WEB 서버 시스템으로 설정된 서버와 FTP 통신을 통해 파일을 동기화 합니다. * HTTP 동기화 방식은 지원하지 않습니다. * FTP 통신 방식을 사용할 경우, FTP 서버가 설치되어 있어야 하며, XAdmin을 통해서 FTP 사용자 ID와 Password를 등록해야 합니다. | | 3 | 파일 다운로드 및 접근 | * L4 스위치의 가상 IP에 접속하여 WEB 서버를 통해서 필요한 파일들을 "사용자 시스템"에 다운로드합니다. | 장애 처리 절차 |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 마스터 서버가 장애인 경우 | * “SLAVE” 시스템에 XAdmin으로 접속하여, “SLAVE” 시스템의 정보를 “MASTER” 시스템으로 변경합니다. * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. | | 2 | 장애 발생 시스템이 복구된 경우 | * “MASTER”로 설정된 시스템에 접속하여, 이행 이력을 확인하여, 장애 발생 시간동안 배포된 파일 목록을 확인합니다. * 마스터 관리 메뉴를 통해서 해당 파일들을 로컬로 다운로드 합니다. * 로컬로 다운로드된 파일들을 다시 업로드/등록/결재/이행 절차를 수행하여 배포합니다. | | 3 | 서버 구성 정보 복구 | * “MASTER” 시스템의 정보를 변경한 경우, 다시 서버 정보를 원복합니다. | ==== WEB/WAS가 분리된 시스템으로 구성 및 로컬 디스크 사용 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:17.png?nolink |}} 상세 아키텍처는 아래와 같다. |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 파일 이행 | * 운영자는 XAdmin UI를 통해서 “MASTER” 시스템으로 등록된 시스템에 접속합니다. * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. * 각 시스템은 XAdmin은 서버 관리 기능을 통해서 모두 한 시스템을 “MASTER” 시스템으로 다른 시스템은 “SLAVE” 시스템으로 등록합니다. * “MASTER” 시스템에만 백업본이 관리됩니다. | | 2 | 파일 시스템 동기화 | * 마스터 시스템에서 파일 이행시 “SLAVE” 시스템으로 등록된 시스템, WEB 서버 시스템으로 설정된 서버와 FTP 통신을 통해 파일을 동기화 합니다. * HTTP 동기화 방식은 지원하지 않습니다. * FTP 통신 방식을 사용할 경우, FTP 서버가 설치되어 있어야 하며, XAdmin을 통해서 FTP 사용자 ID와 Password를 등록해야 합니다. | | 3 | 파일 다운로드 및 접근 | * L4 스위치의 가상 IP에 접속하여 WEB 서버를 통해서 필요한 파일들을 "사용자 시스템"에 다운로드합니다. | 장애 처리 절차 |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | 마스터 서버가 장애인 경우 | * “SLAVE” 시스템에 XAdmin으로 접속하여, “SLAVE” 시스템의 정보를 “MASTER” 시스템으로 변경합니다. * XAdmin의 로컬 파일 업로드 또는 이관 업로드 기능을 통해 “운영자 시스템” 로컬 시스템의 파일을 업로드 하거나, 테스트 시스템의 파일을 업로드합니다. * XAdmin의 등록/결재/이행 기능을 통해 파일을 이행합니다. | | 2 | 장애 발생 시스템이 복구된 경우 | * “MASTER”로 설정된 시스템에 접속하여, 이행 이력을 확인하여, 장애 발생 시간동안 배포된 파일 목록을 확인합니다. * 마스터 관리 메뉴를 통해서 해당 파일들을 로컬로 다운로드 합니다. * 로컬로 다운로드된 파일들을 다시 업로드/등록/결재/이행 절차를 수행하여 배포합니다. | | 3 | 서버 구성 정보 복구 | * “MASTER” 시스템의 정보를 변경한 경우, 다시 서버 정보를 원복합니다. | ===== 컴포넌트 아키텍처 ===== ==== 코드 정보 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:20.png?nolink |}} |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | CODE ID | * 각 코드는 고유의 ID를 가지며, 이 ID를 이용하여 화면에서 참조한다. * 각 코드는 코드 ID를 이용하여 파일로 저장되며, 확장자는 “.pic”로 만들어 진다. | | 2 | 코드 | * CODE ID에 포함되는 코드 정보에서 코드에 해당하는 데이터이다. * 업무 서버로 데이터 송신시 실제로 전송되는 데이터이다. | | 3 | Comment | * 코드에 대한 설명에 해당하는 항목이다. * 업무 서버로 데이터 송수신시 사용되지 않고, 화면에 표시하기 위한 용도로 사용된다. | ==== 그리드 정보 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:21.png?nolink |}} |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | Grid 속성 및 이벤트 | * Grid 컴포넌트 자체의 속성 정보 및 이벤트 정보들이다. * Grid 컴포넌트 전체에 영향을 미치는 속성들이다. | | 2 | Column 헤더 속성 | * 그리드의 각 칼럼의 헤더에 대한 속성 정보들이다. * 그리드의 헤더가 여러 행인 경우에는 각 행의 헤더별로 속성을 정의한다. | | 3 | Column 데이터 속성 및 이벤트 | * 그리드의 각 칼럼의 데이터부에 대한 속성 정보 및 이벤트 정보들이다. | {{ .:architecture_guide:22.png?nolink |}} |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | Grid Header | * 그리드의 각 컬럼의 헤더 정보가 표시되는 영역이다. | | 2 | Grid Row | * 그리드의 한 행을 의미한다. | | 3 | Grid Column | *그리드의 각 열을 의미한다. | | 4 | Grid Item | * 그리드의 특정 행의 특정 칼럼을 의미한다. * 그리드에서 제공하는 API를 이용하면 각 그리드 아이템 단위로 동작을 수행할 수 있다. | ==== 탭 정보 아키텍처 ==== {{ .:architecture_guide:23.1.png?nolink |}} |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | Tab 속성 및 이벤트 | * Tab 컴포넌트 자체의 속성 정보 및 이벤트 정보들이다. * Tab 컴포넌트 전체에 영향을 미치는 속성들이다. | | 2 | 탭 아이템 속성 | * 탭의 각 아이템에 대한 속성 정보들이다. * 탭의 아이템이 여러 개인 경우에는 각 탭 아이템별로 속성을 정의한다. | {{ .:architecture_guide:23.2.png?nolink |}} |< 100% 50px 150px - >| ^ 번호 ^ 구분 ^ 설명 ^ | 1 | Tab Item | * Tab 콘트롤은 각각의 여러 개의 탭 아이템으로 구성된다. | | 2 | Tab Content Panel | * Tab 콘트롤의 각각의 탭 아이템은 아이템별로 콘텐츠 영역을 가진다. * 탭 아이템 콘텐츠 영역에서는 직접 컴포넌트가 배치될 수도 있고, 다른 화면을 링크를 걸 수 있다. | ===== 이벤트 아키텍처 ===== ==== 단순 이벤트 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:24.png?nolink |}} ==== 리턴 이벤트 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:25.png?nolink }} ===== xFrame5 데이터셋 아키텍처 ===== ==== 데이터셋 내부 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:26.png?nolink |}} ==== 데이터셋 통신 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:27.png?nolink |}} ==== 데이터셋 흐름 아키텍처 ==== 상세 아키텍처는 아래와 같다. {{ .:architecture_guide:28.png?nolink }}