X-UP 구성요소

X-UP은 다양한 데이터소스에서 데이터를 가공하여 새로운 데이터셋으로 쉽게 생성하기 위한 프레임워크입니다.

X-UP은 크게 X-UP 모델, X-UP 빌더, X-UP 서버 세 가지 기술로 분류합니다. 이 장에서는 X-UP의 세 가지 기술과 관리자 서비스인 X-UP Administrator에 대해 설명합니다.

X-UP 모델

데이터셋을 수집하고 융합하기 위해서는 메타데이터라 칭하는 다양한 정보들이 설정되어야 하고, 더불어 각 값을 결정하기 위한 비즈니스 로직이 정의되어야 합니다. 데이터셋을 수집하고 융합하기 위한 메타데이터와 사용자 로직을 통칭하여 하나의 'X-UP 모델'이라고 칭합니다.

X-UP 모델은 실제 매쉬업을 위한 메타정보와 로직을 담고 있으며, X-UP 빌더를 이용하여 개발합니다. X-UP 빌더에서 개발된 X-UP모델은 X-UP 서버에 배치되고, 외부에서 X-UP 서버에 구동을 요청하면 X-UP 서버는 해당 모델을 구동시킵니다.

X-UP에서의 모든 동작은 X-UP 모델 단위로 이루어집니다. X-UP 빌더에서 X-UP 모델 단위로 개발하고 배치하며, 외부에서의 요청 또한 X-UP 모델 단위로 처리됩니다. 예를 들어 'Cat'이라는 Automation 모델을 개발하고 이를 X-UP 서버에 배치한 후에는, 외부에서 'Cat'이라고 지칭하는 모델로부터 데이터를 수집하고 처리하여 결과를 받습니다.

X-UP 모델은 다양한 데이터소스를 사용할 수 있으며 데이터소스로부터 원시 데이터를 수집하는 방법을 정의할 수 있습니다. 그리고 수집한 원시 데이터를 정형화된 데이터셋으로 변환하는 방법을 정의하거나 복수의 데이터셋을 하나의 데이터셋으로 융합할 수 있습니다. 필요한 경우, X-UP 사용자는 X-UP 모델에 데이터 수집 또는 융합에 필요한 임의의 로직을 추가할 수 있습니다.

도메인(Domain)

X-UP에서 도메인이란 하나의 프로젝트를 칭합니다.

X-UP 모델은 각 도메인으로 구별합니다. 예를 들어 petStore 도메인에 Order라는 모델이 있고, flowerStore 도메인에 Order라는 모델이 있을 경우 두 모델은 별개의 것으로 처리됩니다. 두 모델의 이름은 같지만 두 모델은 서로 다른 도메인에 속한 것으로 'petStore의 Order'와 'flowerStore의 Order'로 구별됩니다. 따라서 외부 애플리케이션이 X-UP을 호출할 때는 반드시 도메인의 이름과 X-UP 모델의 이름을 같이 명시하여야 합니다.

X-UP 빌더에 의하여 X-UP 프로젝트가 생성되면 대상 도메인의 이름을 설정할 수 있습니다. X-UP 빌더에 의하여 생성된 X-UP 프로젝트는 도메인에 해당합니다. 하나의 X-UP 프로젝트에는 복수의 도메인이 있을 수 없고, 하나의 도메인을 복수의 X-UP 프로젝트가 공유할 수 없습니다. 만약 서로 다른 X-UP 프로젝트가 같은 도메인 이름을 사용하고 같은 X-UP 서버에 배치된다면, 두 프로젝트의 X-UP 모델들이 전부 배치되는 것이 아니라 나중에 배치된 모델이 앞서 배치된 모델을 덮어쓰게 됩니다.

오토메이션 모델(Automation Model)

Automation Model은 X-UP 모델의 한 종류이며, GUI 에디터를 이용하여 하나의 서비스에 해당하는 로직을 다이어그램으로 표현합니다. 표현된 각각의 다이어그램은 invoke라고 하며 임의의 데이터 소스로부터 데이터를 획득합니다. 데이터를 획득 하기 위한 데이터 정보는 X-UP Builder의 에디터와 Properties View를 이용하여 작성하게 됩니다. 그리고 Automation 모델을 저장하게 되면 java 클래스 코드가 자동으로 생성이 되며 GUI에디터에서 모델을 수정하게 되면 자동으로 클래스 코드에 반영되게 됩니다.

메타데이타(MetaData)

X-UP 모델이 동작하기 위한 다양한 설정 정보를 저장합니다. X-UP 서버는 모델을 로드할 경우 메타데이터를 기준으로 모델을 로드하게 되며, 해당 정보를 토대로 실제 모델이 동작하기 위한 로직 클래스를 로드하여 동작하게 됩니다. 또한 메타데이터에는 모델의 버전에 대한 관리 및 Charset과 입출력에 대한 스키마 정보를 가지고 있어 Nexacro 어플리케이션과 연동을 위한 인터페이스 정보를 제공합니다.

로직 클래스(Logic Class)

X-UP 모델의 실제 동작은 로직을 담고 있는 java 클래스를 호출하여 이루어 집니다. X-UP Builder는 이러한 java 클래스 소스를 자동생성하며, 이 java 파일이 컴파일 되어 X-UP Server에 배치됩니다. 대부분의 경우 자동 생성된 java 클래스를 수정할 필요 없이 모델의 개발을 완료할 수 있습니다. 그러나 때에 따라서는 X-UP Builder의 기능만으로는 원하는 로직을 구현하지 못하는 경우도 있습니다. 이럴 때는 자동 생성된 java 파일을 직접 수정하여 구현하면 됩니다.

모델 위자드에 의하여 X-UP 모델을 생성하면 각 X-UP 모델의 타입에 따라 java 파일이 자동 생성됩니다. 예를 들어 모델의 이름이 “Cat”이라면 Automation 모델은 CatAutomationLogic.java 파일이 생성됩니다. 이와 같이 생성된 java 파일을 수정하여 원하는 로직을 구현할 수 있습니다.

X-UP 서버

X-UP 서버는 배치된 X-UP 모델을 구동하는 서버이며 웹 애플리케이션으로 동작합니다. X-UP 빌더에서 개발하는 것은 데이터의 수집, 융합, 가공을 위한 로직일 뿐 실제 기능은 X-UP 서버에서 실행합니다. X-UP 서버는 X-UP에서 제공되는 각 서비스에 대해 Bundle 형태로 구성되어 있습니다.

X-UP 서버가 지원하는 환경은 다음과 같습니다.

name

description

OS

Windows, Unix, Linux (X-UP 빌더의 경우 Window만 지원)

JVM

JAVA 1.7 이상 지원

WAS

JAVA 1.7 이상 지원하는 WAS는 기본적으로 지원

Apache Tomcat, IBM Websphere, Oracle WebLogic, TmaxSoft JEUS

Database

Hana 1.0, MySQL 5.0, MSSQL 서버 2000, 2005, 2008, ORACLE 8i, 9i, 10g, 11g, DB2 9.0

JDBC를 제공하는 데이터베이스 전체 지원 예정

SAP

SAP RFC로 ERP(R/3) 및 BI(BW) 지원

Cobol

Visual Cobol 2.2 이상 지원

OData

OData Version2.0 지원

설치

  1. X-UP 서버를 만들기 위한 WAS를 설치합니다. 본 매뉴얼에서는 apache-tomcat-6.0.35 버전을 사용해 테스트했습니다.

  2. 내려받은 apache-tomcat-6.0.35.zip을 C 드라이브에 압축 해제합니다.

  3. xup.war 파일을 압축이 해제된 tomcat의 기본 Host의 appBase 인 webapps 디렉터리에 복사합니다.

  4. Tomcat을 재기동하면 webapps 폴더에 xup 폴더가 생성됩니다.

  5. 서버 라이선스를 등록합니다. 방법은 아래 라이선스 등록을 참조하세요.

X-UP 서버 파일 구조

X-UP 서버의 파일 구조는 다음과 같습니다. 본 매뉴얼에서는 WAS로 Tomcat을 사용합니다. 아래 그림은 Tomcat WAS 아래에 webapps > xup > WEB-INF > xup 하위의 파일 구조입니다.

Name

Description

conf

conf 폴더는 X-UP 서버의 환경설정 파일들을 가지고 있습니다. X-UP 서버 라이선스 파일이 필요하다면 conf 폴더 안에 위치하도록 합니다.

doc

X-UP 가이드 문서와, 배포 내역, javadoc 등의 문서를 포함합니다.

lib

X-UP 서버의 라이브러리입니다. 해당 폴더 아래에는 bundle 폴더와 core 폴더로 구분되어져 있습니다.

log

X-UP 서버에 대한 로그가 해당 폴더 아래에 생성됩니다.

manage

X-UP 관리자에 대한 데이터베이스 정보를 가집니다.

model

X-UP 빌더를 통해 개발 된 X-UP 모델이 위치합니다.

license.txt

라이선스 동의 문서입니다.

라이선스 등록

X-UP 기능을 정상적으로 사용하기 위해서는 라이선스를 등록해야 합니다. Tomcat, Weblogic등 WAS 위에 설치된 X-UP 서버의 라이선스 적용에 관해 설명합니다.

  1. WAS에 X-UP을 설치합니다.

  2. 제품구매 시 발급받은 라이선스 파일(X-UP_서버_License.xml)을 conf 폴더에 복사합니다.

  1. WAS를 재기동합니다.

Bundle 설치 및 제거

Bundle이란 X-UP Core에서 동작할 수 있는 Invoker 혹은 데이터소스와 같은 모듈 단위를 지칭합니다.

X-UP에서 제공하는 Bundle의 유형은 다음과 같습니다.

데이터소스 타입의 Bundle에서 생성되는 Connection은 Pool을 통하여 일원화된 관리체계를 가지고 있습니다.

Bundle 설치

X-UP 구동 시 Core에 의하여 자동으로 Bundle이 설치됩니다.

Bundle 버전과 Engine(X-UP 서버 Engine) 버전을 이용하여 버전이 변경되지 않는 한 X-UP 구동 시 최초 한 번만 압축을 해제합니다.

Bundle 제거

Bundle의 Uninstall의 경우 Bundle 폴더와 압축파일을 제거하면 Uninstall이 수행되게 됩니다.

Bundle Repository

제공 된 Bundle 은 압축 해제 시 다음과 같은 폴더 구조를 가지게 됩니다.

Name

Description

Bundle Adaptor

Bundle이 동작하기 위한 구현체

ex) Invoker, DataSource

bundle Id

Bundle의 명칭

(xup_cofing.xml에 기록된 Bundle의 id와 매칭됩니다.)

Bundle Core Jar Name

Bundle의 Core Jar 이름

Bundle Implementation Jar Name

외부에 노출된 클래스 파일입니다.

Bundle Version

Bundle을 관리하기 위한 버전

Engine Version

Bundle에 최적화된 Engine버전

X-UP 빌더

X-UP 빌더는 X-UP모델을 개발하는 개발도구 입니다.

X-UP 사용자는 X-UP 빌더를 사용하여 쉽고 빠르게 X-UP 모델을 개발하고 이를 서버에 배치시킬 수 있고, X-UP 빌더를 사용하여 개발한 서비스는 X-UP 라이브러리를 호출하고, X-UP 라이브러리는 배치된 모델을 사용하여 데이터를 수집하고 융합하여 생성된 데이터셋을 반환합니다.

X-UP 빌더는 드래그 앤 드롭과 직관적인 GUI 편집기를 제공하여 시각적인 방법으로 모델을 개발 및 테스트하며 서버에 배치하는 모든 작업을 개발 경험이 많지 않은 개발자라 할지라도 손쉽게 개발할 수 있도록 다양한 편의기능을 제공합니다.

X-UP 빌더는 이클립스 플랫폼 기반 위에 JDT, EMF, GEF 라이브러리를 사용해 개발했습니다. X-UP 빌더가 사용하는 JRE 및 이클립스 라이브러리 버전은 다음과 같습니다.

Name

Version

Description

JRE

1.7.0_79

Java Runtime Environment

Eclipse Platform

4.4.2

Eclipse Platform

JDT

3.10.1

Java Development 개발도구

EMF

2.10.0

Eclipse Modeling Framework

GEF

3.9.100

Graphical Modeling Framework

X-UP 빌더에서 제공하는 기능은 다음과 같습니다.

X-UP 빌더 파일 구조

X-UP 빌더의 파일 구조는 다음과 같습니다.

Name

Type

Description

X-UP Project

project

X-UP 모델개발을 위한 프로젝트로서 프로젝트 이름이 곧 도메인이 됩니다. 개발이 완료된 후 특정 모델을 호출할 때 프로젝트명은 중요한 키값이 됩니다.

logics

src folder

로직정보를 담고 있는 자바 소스들이 위치합니다. 로직 소스는 모델이 생성될 때 에디터에 의해 자동으로 생성되며 사용자에 의해 수정될 수 있습니다.

userLib

src folder

사용자 라이브러리가 추가되면 자동생성됩니다.

logic class package

package folder

로직클래스는 패키지가 없이 생성되므로 가상의 패키지명인 default package 형태로 보입니다.

test class package

package folder

테스트 클래스가 생성될 때 자동으로 생성되며, 패키지명은 projectName + '.' + xuptest으로 자동 생성됩니다.

models

folder

에디터에서 작성된 모델들이 위치한다. 프로젝트 안에서 생성된 모든 *.xam 모델들은 models 폴더 밑에 생성됩니다.

logic class

class

X-UP 모델과 같이 생성된 로직 클래스

test class

class

X-UP 모델에 의해 자동생성된 테스트 클래스

X-UP model

*.xam

X-UP 모델로서 *.xam은 Automation 모델입니다.

GlobalEvents.xaop

*.xaop

X-UP 프로젝트에서 개발된 모델들에 대해 전역으로 이벤트를 설정할 수 있습니다. GlobalEvents.xaop는 Optional 한 설정입니다.

mashup.msh

*.msh

X-UP 프로젝트에서 개발된 모델들에 대한 모든 중요한 정보를 가지고 있습니다. mashup.msh는 X-UP 프로젝트에 반드시 하나 존재해야 합니다.

logics 폴더에는 로직 클래스가 위치합니다. 기본적으로 생성되는 로직 클래스들은 패키지명이 없는 클래스로 생성되고 logics 폴더는 Classpath에 등록되어 있습니다.

X-UP Model에서 생성하는 로직 클래스에는 User logic class와 Base logic class로 나누어집니다.

User logic class는 사용자가 모델 개발 시 별도의 로직을 담을 수 있도록 인터페이스 메소드들이 미리 정의된 클래스 파일로써, 모델이 처음 생성될 때 자동으로 생성되고 모델이 생성될 때 속성값 중 logic 항목에 같이 생성한 User logic class 이름을 자동으로 등록합니다.

User logic class 이름은 반드시 모델의 logic 항목에 정의된 이름과 같아야 합니다.

Base logic class 역시 모델 생성 시 자동으로 생성됩니다. 그러나 이 로직 클래스는 기본적으로 사용자에겐 숨겨지고, 에디터가 저장될 때마다 자동으로 내용을 갱신합니다. 즉, 에디터가 자동 갱신하는 로직 클래스이므로 수정하더라도 저장 시 다시 재작성됩니다. 모델 개발 시 사용자는 Base logic class의 내용을 알 필요가 없으므로 디폴트로 숨겨져 있습니다.

userLib 폴더는 [project > import > X-UP > user library] 를 통해 사용자 라이브러리가 등록되면 자동으로 생성되고 해당 폴더 밑에 모든 *.jar 파일이 위치하게 됩니다.

모델 개발이 끝나고 서버에 배치(deploy)될 때 userLib 밑에 존재하는 모든 jar 파일도 logic class와 함께 추가됩니다.

models 폴더는 개발된 모든 X-UP 모델들이 위치하게 됩니다. 모든 *.xam 파일들은 반드시 models 폴더 밑에 있어야 합니다.

GlobalEvents.xaop 파일은 개발된 모든 모델에서 설정 가능한 이벤트를 전역으로 설정할 수 있도록 합니다. 입출력 데이터에 대한 검증 및 데이터소스 변경 작업 등을 수행할 수 있습니다. 해당 설정은 Optional 합니다.

mashup.msh 파일은 Deploy를 위한 서버 URL이나 DataSource 정보와 같은 해당 X-UP 프로젝트에서 모델 개발 시 필요한 중요한 정보를 포함합니다.