2.구성요소

Edit

Nex-UP은 다양한 데이터소스에서 데이터를 획득하여 데이터셋으로 쉽게 생성하기 위한 프레임워크 입니다. Nex-UP은 Nex-UP 서버, Nex-UP Editor 두 가지 기술로 분류할 수 있습니다.

2.1Nex-UP 서버

Nex-UP 서버는 배치된 Nex-UP 서비스를 구동하는 서버이며 웹 애플리케이션으로 동작합니다. Nex-UP Editor에서 개발하는 것은 데이터의 획득을 위한 정보일 뿐 실제 기능은 Nex-UP 서버에서 실행합니다. Nex-UP 서버에서 제공되는 Connector는 SPI(Service Provider Interfaces) 형태로 구성되어 있습니다.

2.1.1커넥터 (Connector)

Connector는 Nex-UP 서버에서 동작할 수 있는 데이터를 획득하기 위한 모듈입니다.

예를 들면 DB Connector는 데이터베이스로부터 메타데이터(테이블의 목록 정보, 테이블의 컬럼정보 등)를 획득하고, 입력 된 쿼리를 수행(myBatis를 이용)하여 데이터를 획득합니다.

Connector의 로드는 Java의 java.util.ServiceLoader에 의해 이루어지고, 해당 jar 파일은 아래와 같은 설정 정보를 포함한다.

META-INF/services/com.nexacro.nexup.connector.Connector

com.nexacro.nexup.connector.Connector interface에 대한 자세한 내용은 javadoc을 참고한다.

Connector의 설치 및 제거

Connector interface를 구현한 jar 파일은 클래스패스에 존재하는 경우 자동으로 설치되며, 클래스패스에서 삭제하는 경우 제거된다.

2.1.2서비스 (Service)

서비스는 정의 된 데이터소스로부터 데이터를 획득(DB의 경우 쿼리를 실행)하는 것이다. 이를 위해 데이터소스 정보 및 어떠한 Connector를 통해 데이터를 획득할 것인지, 그리고 데이터를 어떻게 획득할 것인지에 대한 정보가 설정 되어져야 하고, 서비스가 어떻게 실행할 것인지에 대한 정보가 설정 되어져야 한다. 데이터를 획득하기 위한 메타데이터와 서비스를 어떻게 실행할 것인지에 대한 실행전략을 통칭하여 하나의 'Nex-UP 서비스'라고 칭합니다.

Nex-UP 서비스는 실제 데이터 획득을 위한 메타정보와 로직을 담고 있으며, Nex-UP Editor를 이용하여 개발합니다. Nex-UP Editor에서 개발된 Nex-UP 서비스는 Nex-UP 서버에 배치되고, 외부에서 Nex-UP 서버에 구동을 요청하면 Nex-UP 서버는 해당 서비스를 구동시킵니다.

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


항목

설명

1

ConnectorService

데이터를 획득하는 서비스이다. 예를 들어 DB를 기준으로 한다면, 하나의 쿼리가 존재하는 서비스가 Connector 서비스입니다.

2

CompositeService

이미 만들어진 ConnectorService를 사용자가 원하는 형태로 조합하여 서비스로 제공하는 형태이다.

메타데이터(MetaData)

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

실행전략(ExecutionStrategy)

실행전략이란 서비스를 어떻게 실행할 것인지에 대한 전략이다. Nex-UP Editor를 통해 개발된 서비스는 ConnectorExecutionStrategy로 구성되고, 해당 실행전략은 하나의 Connector로 부터 데이터를 획득하게 됩니다. 또한 복수개의 서비스를 융합하는 경우 CompositeExecutionStrategy로 구성됩니다.

그림 2-1Composite Service (여러 서비스를 호출하는 CompositeService)

2.1.3애플리케이션 구성요소

Nex-UP 서버의 파일 구조는 다음과 같습니다. WAS의 webapplication 디렉토리 내 nexup 하위의 파일 구조입니다.

아래는 각 폴더에 대한 설명입니다.

폴더명

설명

editor14

editor14 폴더는 Nex-UP Editor의 실행파일들이 있습니다.

WEB-INF/classes

로그 설정, mybatis 설정, 라이센스 파일이 위치합니다. Nex-UP 서버 라이선스 파일이 필요하다면 WEB-INF/classes 폴더안에 위치하도록 합니다.

WEB-INF/classes/conf

Nex-UP의 설정 파일이 위치합니다. 기본적인 환경에 대한 설정과 데이터소스 설정을 할 수 있습니다.

WEB-INF/classes/message

다국어 처리를 위한 message 파일들이 위치합니다.

WEB-INF/classes/spring

Nex-UP에서 사용하는 bean 설정파일들이 위치합니다.

WEB-INF/lib

Nex-UP 서버의 라이브러리 입니다.

WEB-INF/service

Nex-UP 서버에서 구동되는 Nex-UP 서비스 파일들이 위치합니다.

Nex-UP Editor에서 개발 된 서비스가 배치되는 위치입니다.

WEB-INF/service-test

Nex-UP Editor에서 테스트시 생성되는 폴더로 테스트가 완료된 후 생성된 서비스 파일은 자동으로 삭제 됩니다.

WEB-INF/common

유저 IP정보 또는 session정보와 같은 데이터를 서비스에서 공통적으로 사용할 경우 공통 Dataset이 정의되는 xml파일이 위치합니다.

WEB-INF/springmvc

Nex-UP 서버의 spring mvc 관련 설정파일이 위치합니다.

2.2Nex-UP Editor

Nex-UP Editor는 Nex-UP 서비스를 개발하는 개발도구 입니다.

Nex-UP 사용자는 Nex-UP Editor를 사용하여 쉽고 빠르게 Nex-UP 서비스를 개발하고 이를 서버에 배치시킬 수 있습니다. 개발된 서비스는 Nex-UP 라이브러리를 호출하고, Nex-UP 라이브러리는 배치된 서비스를 사용하여 데이터를 획득하여 생성된 데이터셋을 반환합니다.

Nex-UP Editor는 직관적인 GUI 편집기를 제공하여 손쉽게 서비스를 개발 및 테스트하며 서버에 배치하는 모든 작업을 개발 경험이 많지 않은 개발자라 할지라도 손쉽게 개발할 수 있도록 다양한 편의기능을 제공합니다.

Nex-UP Editor는 넥사크로 플랫폼으로 개발됐으며, 넥사크로 플랫폼 개발도구인 Nexacro Studio와 유사한 GUI를 통해 최적의 개발환경을 제공합니다.

2.2.1Nex-UP Editor 메뉴 및 기능

  1. Framework URL

    Nex-UP Framework가 설치된 URL정보를 입력합니다.

그림 2-2Nex-UP Framework가 설치된 URL정보를 입력합니다.

  1. 메뉴버튼

메뉴명

description

New

서비스 그룹 또는 서비스를 선택하여 생성

Save

현재 창이 열려 있는 서비스를 저장

Save All

열려 있는 모든 서비스를 저장

config

Nex-UP 환경설정 팝업창 오픈

  1. SqlMap Explorer

기능

description

서비스 목록 갱신

그룹 신규 생성

서비스 신규 생성

그룹 및 서비스 삭제

검색된 서비스명으로 이동

서비스명 검색

open

선택된 서비스를 오픈

delete

선택된 서비스를 삭제

add Group

해당 위치에 그룹을 생성

add Service

해당 위치에 서비스를 생성

view callFunction

UI에서 서비스를 호출하는 스크립트를 생성하여 팝업으로 보여줌

copy callFunction

UI에서 서비스를 호출하는 스크립트를 Clipboard 에 복사

  1. DB Explorer

Table의 경우

Procedure 또는 Function

기능

description

검색된 항목으로 이동

검색된 항목만 표시

SELECT

선택된 Table 또는 View의 Select구문을 생성

INSERT

선택된 Table 또는 View의 Insert구문을 생성

UPDATE

선택된 Table 또는 View의 Update구문을 생성

DELETE

선택된 Table 또는 View의 Delete구문을 생성

TEXT

선택된 Table 또는 View의 컬럼명을 Text문자열로 생성

CALL

선택된 Procedure 또는 Function의 호출 스크립트를 생성

  1. Table Viewer

    DB Explorer의 Table 또는 View 더블 클릭시 오픈 되는 팝업

그림 2-3Column : Table 또는 View의 컬럼 정보 표시

그림 2-4Data : 선택된 Table 또는 View의 Data

그림 2-5Source : 선택된 Table 또는 View의 조회 결과 Dataset script source

2.2.2서비스 편집

그림 2-62f04a369ad686751

  1. 서비스 기본 정보

메뉴명

description

Sql Id

서비스(SQL ID). 같은 그룹내 중복된 id 불가

Sql Type

SQL문의 타입(select, insert, update, delete)

DataSource

DataSource 선택

Sql Name

서비스(SQL) Alias명

Entity Type

DB 엔티티 유형(Table, View, Procedure, Function)

Memo

서비스에 대한 설명

  1. Test 및 실행

메뉴명

description

TEST(F5)

서비스를 Test 실행(Commit되지 않음. 실행 후 RollBack)

RUN(F9)

서비스를 실행(Commit 처리 됨)

  1. SQL 에디트 영역

그림 2-7쿼리 자동 완성 기능 (단어 입력 후 Ctrl + Space 키)

그림 2-8Dynamic query tag 자동 완성 기능( "<" 태그 입력 후 Ctrl + Space 키)

  1. Test 및 실행 결과 영역

그림 2-9Console 탭 : Test 및 Run으로 실행한 결과 로그를 표시

그림 2-10Input/Output 탭 : 서비스의 입력값 정의 및 출력값 정의

그림 2-11마우스 우클릭시 컨텍스트 팝업

메뉴명

description

Variables

서비스 호출시 입력되는 Parameter값을 정의

InputDatasets

서비스 호출시 입력되는 Dataset(목록)을 정의

OutputDataset

서비스 실행 후 결과 Dataset을 표시

VariablesㆍDataset 추가

VariablesㆍDataset 삭제

Remake

그림 2-12마우스 우클릭시 컨텍스트 팝업

메뉴명

description

Dataset Id

InputDatasetㆍOutputDataset의 아이디를 설정

Columns

선택된 Dataset의 Column 정보

Rows

선택된 Dataset의 Data

Dataset Column 또는 Row를 추가

Dataset Column 또는 Row를 삽입

Dataset Column 또는 Row를 삭제

그림 2-13Result 탭 : 서비스 실행 결과를 표시

메뉴명

description

Contents

서비스 실행 결과를 표시

Source

결과 Dataset script source를 표시

결과 row의 셀을 더블클릭하게 되면 셀의 텍스트가 복사 됩니다.