54
Tmax Gateway Guide (WebService) Tmax v5.0 SP1 Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

Tmax Gateway Guide

(WebService)

Tmax v5.0 SP1

Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

Page 2: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

Copyright Notice

Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

대한민국 경기도 성남시 분당구 서현동 263 분당스퀘어(AK프라자) 12층

Restricted Rights Legend

All TmaxSoft Software (Tmax®) and documents are protected by copyright laws and the Protection Act of Com

puter Programs, and international convention. TmaxSoft software and documents are made available under the

terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this

agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any

means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어(Tmax®) 사용설명서의 내용과 프로그램은 저작권법, 컴퓨터프로그램보호법 및 국제 조약에 의해

서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용권 계약 하에

서만 사용이 가능하며, 사용권 계약을 준수하는 경우에만 사용 또는 복제할 수 있습니다. 이 사용설명서의 전부 또

는 일부분을 TmaxSoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배포, 2차적 저

작물작성 등의 행위를 하여서는 안 됩니다.

Trademarks

Tmax®, Tmax WebtoB® and JEUS® are registered trademark of TmaxSoft Co., Ltd. Other products, titles or

services may be registered trademarks of their respective companies.

Tmax®, Tmax WebtoB® 와 JEUS®는 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각

각 해당 소유주의 상표로서 참조용으로만 사용됩니다.

Open Source Software Notice

This product includes various open source software that has been developed and/or licensed by “OpenSSL”, “RSA

Data Security, Inc.”, “Apache Foundation”, or “Jean-loup Gailly and Mark Adler.” TmaxSoft fully respects the

aforementioned parties and the open source software used in this product. More details can be found within the

directory “${INSTALL_PATH}/license/oss_licenses”

본 제품은 “OpenSSL”, “RSA Data Security, Inc.”, “Apache Foundation” 및 “Jean-loup Gailly와 Mark Adler”에 의

해 개발 또는 라이선스된 오픈 소스 소프트웨어를 포함합니다. 오픈 소스 소프트웨어와 개발자에 대해 경의를 표

합니다. 관련 상세 정보는 제품의 디렉터리 “${INSTALL_PATH}/license/oss_licenses”에 기재된 사항을 참고해 주

십시오.

안내서 정보

안내서 제목: Tmax Gateway Guide (WebService)

발행일: 2009-08-10

소프트웨어 버전: Tmax v5.0 SP1

안내서 버전: v2.1.1

Page 3: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

내용 목차

안내서에 대하여 .......................................................................................................................... vii

제1장 웹서비스 소개 ................................................................................................................... 1

1.1. 개요 ............................................................................................................................ 1

1.1.1. 웹서비스의 이해 ................................................................................................ 1

1.1.2. 웹서비스의 이점 ................................................................................................ 2

1.2. 웹서비스 게이트웨이 소개 ............................................................................................. 2

1.2.1. 웹서비스 제공자 기능 ........................................................................................ 3

1.2.2. 웹서비스 요청자 기능 ........................................................................................ 4

제2장 설정 ................................................................................................................................. 7

2.1. 서비스 정보 파일 .......................................................................................................... 7

2.1.1. 파일 형식 .......................................................................................................... 7

2.1.2. tmmbfgen, untmmbfgen ..................................................................................... 9

2.1.3. 예제 ................................................................................................................ 10

2.2. 웹서비스 게이트웨이 설정 파일 ................................................................................... 12

2.2.1. 파일 형식 ........................................................................................................ 12

2.2.2. 예제 ................................................................................................................ 14

2.3. Tmax 설정 ................................................................................................................. 15

2.3.1. GATEWAY 절 .................................................................................................. 15

제3장 라이브러리 ...................................................................................................................... 17

3.1. callback 함수 .............................................................................................................. 17

3.2. 데이터 변환 라이브러리 .............................................................................................. 18

제4장 관리 ................................................................................................................................ 21

4.1. 상태 정보 보기 ........................................................................................................... 21

4.1.1. wsgwinfo ......................................................................................................... 21

4.2. 동적 설정 ................................................................................................................... 21

4.2.1. wsgwreload ..................................................................................................... 22

제5장 예제 ................................................................................................................................ 23

5.1. 서비스 생성 ................................................................................................................ 23

5.1.1. 서버 프로그램 .................................................................................................. 23

5.2. 웹서비스 설정 ............................................................................................................ 25

5.2.1. 서비스 정보 파일 생성 ...................................................................................... 25

5.2.2. 웹서비스 게이트웨이 설정 파일 생성 ................................................................. 27

5.3. Tmax 환경 파일 생성 .................................................................................................. 27

5.4. Axis1.4 클라이언트 프로그램 생성 ............................................................................... 28

5.4.1. WSDL 파일 생성 .............................................................................................. 28

5.4.2. Stub 생성 ........................................................................................................ 28

Appendix A. 유틸리티 .............................................................................................................. 33

A.1. tmmbfgen .................................................................................................................. 33

Tmax Gateway Guide iii

Page 4: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

A.2. untmmbfgen .............................................................................................................. 34

A.3. xwsdlgen ................................................................................................................... 34

A.4. 내부 struct type 지원 .................................................................................................. 35

iv Tmax Gateway Guide (WebService)

Page 5: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

그림 목차

[그림 1.1] WSGW 동작 구조 ........................................................................................................ 3

[그림 1.2] WSGW 동작 구조 ........................................................................................................ 4

Tmax Gateway Guide v

Page 6: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 7: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

안내서에 대하여

안내서의 대상

본 안내서는 Tmax®(이하 Tmax)에서 제공되는 게이트웨이 서버를 사용하는 개발자를 위해 기술되었다.

본 안내서는 Tmax 서비스를 특별한 변경없이 웹서비스로 사용하기 위해서 제공되는 게이트웨이 서버인

웹서비스 게이트웨이에 대해서 기술한 안내서이다.

안내서의 전제 조건

본 안내서는 Tmax 시스템에 대한 전반적인 이해와 Tmax 시스템이 제공하는 각종 기능 및 특성에 대한 습

득을 위한 기본서이다.

본 안내서를 원활하게 이해하기 위해서는 다음과 같은 사항을 미리 알고 있어야 한다.

● 미들웨어(Middleware) 및 UNIX 시스템에 대한 이해

● Tmax의 기본 개념 이해

● Java , C 프로그래밍의 이해

● 웹서비스에 대한 기본 이해

안내서의 제한 조건

본 안내서를 읽기 전에 Tmax의 기본 개념을 숙지하고 있어야 한다. 실무에서의 구체적인 사용방법이나

관리 및 운용에 관한 사항은 각 제품의 안내서를 참고한다.

참고

Tmax 시스템 개발에 대한 기본적인 내용은 "Tmax Administration Guide"나 "Tmax Application Devel

oment Guide"를 참고한다. Tmax에서 제공하는 명령어와 C API에 대한 설명은 “Tmax Reference

Guide”를 참고한다.

안내서에 대하여 vii

Page 8: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

안내서 구성

Tmax Gateway Guide(WebService)는 총 5개의 장과 Appendix로 구성되어 있다.

각 장의 주요 내용은 다음과 같다.

● 제1장: 개요

웹서비스 게이트웨이에 대해 소개하고 동작구조에 대해 기술한다.

● 제2장: 설정

웹서비스 게이트웨이를 동작시키기 위해 필요한 서비스 정보 파일, 웹서비스 게이트웨이 설정 파일,

Tmax 환경 설정 파일에 대해 기술한다.

● 제3장: 라이브러리

웹서비스 요청자 기능을 위해서 기본으로 제공되는 게이트웨이 실행 파일에 대해 기술한다.

● 제4장: 관리

웹서비스 게이트웨이 상태 정보를 보거나 재시작하는 방법에 대해 기술한다.

● 제5장: 예제

Tmax 서비스인 ECHOSTRING, ECHOSDL, ECHOFDL (input과 output이 동일한 서비스)을 웹서비스

로 제공하는 방법을 기술한다.

● Appendix A.: 유틸리티

tmmbfgen, untmmbfgen, xwsdlgen 유틸리티 사용방법에 대해 기술한다.

viii Tmax Gateway Guide (WebService)

Page 9: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

안내서 규약

의미표기

프로그램 소스 코드의 파일명<AaBbCc123>

Ctrl과 C를 동시에 누름<Ctrl>+C

GUI의 버튼 또는 메뉴 이름[Button]

강조진하게

다른 관련 안내서 또는 안내서 내의 다른 장 및 절 언급" "(따옴표)

화면 UI에서 입력 항목에 대한 설명'입력항목'

메일계정, 웹 사이트하이퍼링크

메뉴의 진행 순서>

하위 디렉터리 또는 파일 있음+----

하위 디렉터리 또는 파일 없음|----

참고 또는 주의사항참고

그림 이름[그림 1.1]

표 이름[표 1.1]

명령어, 명령어 수행 후 화면에 출력된 결과물, 예제코드AaBbCc123

옵션 인수 값[ ]

선택 인수 값|

안내서에 대하여 ix

Page 10: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

시스템 사용 환경

요구 사항

IBM AIX 5.xPlatform

HP-UX 11.xx

Solaris 7~9 (SunOS 5.7~5.9)

최소 120MB 하드디스크 공간Hardware

256MB 이상 메모리 공간

1GB 이상 하드디스크와 512MB 이상 메모리 공간 권장

Oracle 9i 또는 10gDatabase

x Tmax Gateway Guide (WebService)

Page 11: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

관련 안내서

설명안내서

Tmax를 이용하기 위한 환경설정을 하는 방법과 시스템 운영방식을

기술한 안내서이다.

Tmax

Administration Guide

안내서에 대하여 xi

Page 12: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

연락처

Korea

TmaxSoft Co., Ltd

263 BundangSquare (AK Plaza) 12th floor, Seohyeon-dong, Bundang-gu,

Seongnam-si, Gyeonggi-do, 463-824

South Korea

Tel: +82-31-8018-1000

Fax: +82-31-8018-1115

Email: [email protected]

Web (Korean): http://www.tmax.co.kr

기술지원: http://technet.tmaxsoft.com

USA

TmaxSoft, Inc.

560 Sylvan Avenue Englewood Cliffs, NJ 07632

U.S.A

Tel: 1-201-567-8266

Fax: 1-201-567-7339

Email: [email protected]

Web (English): http://www.tmaxsoft.com

Japan

TmaxSoft Japan Co., Ltd.

5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073

Japan

Tel: +81-3-5765-2550

Fax: +81-3-5765-2567

Email: [email protected]

Web (Japanese): http://www.tmaxsoft.co.jp

xii Tmax Gateway Guide (WebService)

Page 13: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

China

TmaxSoft China Co., Ltd.

Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan,

Chaoyang District, Beijing, China, 100027

China

Tel: +86-10-6410-6145~8

Fax: +86-10-6410-6144

Email: [email protected]

Web (Chinese): http://www.tmaxsoft.com.cn

ASEAN Office

TmaxSoft Pte. Ltd.

30 Cecil Street, Level 15 Unit 05 Prudential Tower, Singapore 049712

Singapore

Tel: +65-6232-2889

Fax: +65-6232-2919

Email: [email protected]

Web (English): http://asean.tmaxsoft.com

안내서에 대하여 xiii

Page 14: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 15: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

제1장 웹서비스 소개

1.1. 개요웹서비스는 애플리케이션들이 플랫폼과 프로그래밍 언어와는 독립된 방식으로 서로 통신할 수 있도록 하

는 표준화된 기술이며 표준 XML 메시징을 통해 네트워크로 접근 되어 질 수 있는 오퍼레이션들을 기술하

는 소프트웨어 인터페이스이다. 또 웹서비스는 인터넷에만 연결되어 있다면 서비스에 대한 권한을 가지

고 있는 사용자 누구에게라도 비즈니스를 공개하고 사용되어 질수 있도록 메시징 프로토콜, 프로그래밍

표준, 서비스 발견을 위한 편의 환경 등을 정의하고 있다.

1.1.1. 웹서비스의 이해

웹서비스는 인터넷의 Uniform Resource Identifier로 접근 가능한 애플리케이션이며 웹서비스의 인터페이

스와 바인딩은 XML 문서로 정의되어지고 기술되며 발견되어 질 수 있다. 하나의 웹서비스는 인터넷에 공

개되어진 또 다른 웹서비스와 상호 연동이 가능할 뿐 아니라 기존의 백엔드(back-end) 애플리케이션들과

도 연동이 가능하다. 지금까지의 애플리케이션 아키텍쳐는 2가지의 범주에 속해 있었다. 하나는 메인프레

임을 기반으로 작동하는 단일화 된 시스템이며, 다른 하나는 데스크 탑에서 작동하는 클라이언트-서버

(client-server) 기반의 시스템이었다.

이들 시스템들은 물론 모두 다 잘 작동하지만, 이러한 아키텍쳐 위에 동작하는 프로그램들은 그 시스템에

서만 작동할 수 있게 맞추어진 프로그램들이라는 한계점을 가지고 있다. 아키텍쳐 내에서의 프로그램들

은 아주 폐쇄적이어서 접근이 용이하지 않으므로 웹상에 존재하는 무수히 많은 사용자들에게는 무용지물

이다. 그래서 소프트웨어 산업은 서비스지향 아키텍쳐 (SOA:Service-Oriented Architecture) 라는 방향으

로 진화하게 되었고, 이 기반위에서의 애플리케이션들은 웹상에서 동적으로 상호 작용 할 수 있게 되었다.

애플리케이션은 큰 규모로 이루어져 있던 소프트웨어 시스템을 더 작게 모듈화된 여러 서브 시스템으로

구성하게 만들었고, 이렇게 작게 모듈화된 서브 소프트웨어 시스템들은 각각 다양한 기술들로 구현할 수

있게 되었으며, 하나의 컴퓨터에 존재하지 않아도 되며, 재사용 할 수 있게 되었다. 또한 XML 과 HTTP 같

은 표준 웹프로토콜을 사용하여 인터넷 상의 어떠한 사용자라도 쉽게 접근 할 수 있게 만들었다.

이러한 서비스 지향 기술은 이미 수년전부터 RMI, COM, 그리고 CORBA 와 같은 여러 다양한 형태의 기

술들로 구현되어져 왔으므로 최근에야 발생한 완전한 새로운 형태의 것이라고 보기는 힘들다. 하지만 이

렇게 언급한 기술 들은 벤더에 종속적이거나 구현된 기술에 종속적이라는 단점이 있다. 웹서비스는 이러

한 단점들을 극복한다.

웹서비스는 다음과 같은 특징이 있다.

● 웹서비스는 웹을 통해 접근 할 수 있다.

● 웹서비스는 스스로 표방하고 서술한다.

제1장 웹서비스 소개 1

Page 16: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

– 웹서비스는 스스로의 역할과 기능, 속성에 대해서 서술함에 따라서 웹서비스 클라이언트가 서비스에

대한 이해를 할 수 있게한다. WSDL(Web Service Description Language)이라는 파일에 서비스를 서

술하여 이를 공개함으로써 다른 애플리케이션에서 서비스를 이용할 수 있게 한다.

– Recovery/Rollback에 의한 안정성을 보장한다.

● 웹서비스는 HTTP와 같은 표준 인터넷 프로토콜에 의해 전달되는 XML 메시지를 통해 웹서비스 클라이

언트와 교신한다.

– 웹서비스 클라이언트는 애플리케이션일 수도 있고, 다른 웹서비스 일수도 있다.

● 웹서비스는 request-response 혹은 one-way 방식으로 작동하며, 동기 혹은 비동기 통신으로 호출 되어

질 수 있다. 이러한 작동방식과 통신 방식에는 무관하게 웹서비스와 웹서비스 클라이언트간에 교환되

는 근본적인 단위는 메시지이다.

1.1.2. 웹서비스의 이점

웹서비스에는 다음과 같은 이점이 있다.

● 인터넷 공개 표준을 지원한다. 웹서비스는 SOAP(Simple Object Access Protocol), WSDL, UDDI(Universal

Description, Discovery, and Integration)와 같은 공개 표준을 정하여 이를 근간으로 하여 상호 작용이

이루어 지므로 웹서비스를 지원하는 응용 프로그램들은 상호 작동에 문제가 없게된다.

● 플랫폼과 언어에 독립적이다.

● HTTP와 같은 웹 프로토콜을 사용하므로 방화벽과 같은 장애에도 문제가 없어 애플리케이션에 대한 접

근이 용이하다.

1.2. 웹서비스 게이트웨이 소개WebService Gateway(이하 ‘WSGW’나 ‘웹서비스 게이트웨이')는 웹서비스 제공자가 Tmax의 서비스를 호

출하기 위해서나 Tmax에서 외부의 웹서비스 제공자의 서비스를 호출하기 위해서 제공되는 게이트웨이

서버이다. 웹서비스 제공자와 웹서비스 요청자의 역할을 수행한다.

웹서비스 제공자로 기능 수행시에는 Tmax 서비스를 특별한 변경 없이 웹서비스로 사용할 수 있다. HTTP

프로토콜을 기반으로 하는 SOAP 요청 메시지를 처리는 웹서비스 제공자의 역할을 한다.

웹서비스 게이트웨이를 실행하기 위해서는 Tmax 환경파일에 GATEWAY 절에 등록을 해야 하며 부가적

으로 웹서비스 게이트웨이 설정 파일, 서비스 정보 파일이 필요하다.

2 Tmax Gateway Guide (WebService)

Page 17: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

1.2.1. 웹서비스 제공자 기능

동작 구조

웹서비스 요청자가 보낸 SOAP 요청 메시지가 수신되면 웹서비스 게이트웨이는 SOAP 메시지를 분석하

여 해당하는 Tmax 서비스를 call하고 그 결과를 다시 SOAP 메시지로 만들어서 요청자에게 보내게 된다.

다음은 WSGW 동작 구조에 관한 그림이다.

[그림 1.1] WSGW 동작 구조

동작 시나리오

웹서비스는 다음과 같은 순서로 실행 할 수 있다.

1. 서비스 정보 파일을 작성한다.

2. tmmbfgen으로 서비스 정보 바이너리 파일을 생성한다.

3. 웹서비스 게이트웨이 설정 파일을 작성한다.

4. Tmax 환경 설정 파일에 웹서비스 게이트웨이를 설정한다.

5. Tmax를 재부팅하거나 tmadmin에서 wsgwreload 명령어를 입력하여 웹서비스 게이트웨이를 실행시킨

다.

6. xwsdlgen 으로 wsdl 문서를 생성하여 서비스 요청자에게 제공한다.

7. 서비스 요청자는 wsdl 문서로 클라이언트 애플리케이션을 생성한다.

관련된 유틸리티

관련된 유틸리티는 다음과 같다.

● tmmbfgen

제1장 웹서비스 소개 3

Page 18: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

● untmmbfgen

● xwsdlgen

관련된 설정 파일

관련된 설정 파일은 다음과 같다.

● Tmax 환경 설정 파일

● 웹서비스 게이트웨이 설정 파일

● 서비스 정보 파일(서비스 정보 바이너리 파일)

● WSDL 파일

1.2.2. 웹서비스 요청자 기능

동작 구조

Tmax에서 외부 웹서비스를 제공하는 제공자에게 서비스를 요청하기 위한 기능으로 다음과 같이 동작한

다.

Tmax 클라이언트나 서버에서 웹서비스 게이트웨이에 할당한 서비스를 호출할 떄 요청 메시지는 웹서비

스 게이트웨이를 통해서 제공자 (WAS와 같은)에게 SOAP 메시지를 전달한다. 웹서비스 게이트웨이는 요

청이 있을 때마다 제공자에게 연결을 맺고 메시지를 수신할 때 요청을 종료한다.

[그림 1.2] WSGW 동작 구조

4 Tmax Gateway Guide (WebService)

Page 19: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

동작 시나리오

웹서비스는 다음과 같은 순서로 실행 할 수 있다.

1. 서비스 정보 파일을 작성한다.

2. tmmbfgen으로 서비스 정보 바이너리 파일을 생성한다.

3. 웹서비스 게이트웨이 설정 파일을 작성한다.

4. Tmax 환경 설정 파일에 웹서비스 게이트웨이를 설정한다.

5. Tmax를 재부팅하거나 tmadmin에서 wsgwreload 명령어를 입력하여 웹서비스 게이트웨이를 실행시킨

다.

6. Tmax 클라이언트와 서버에서 웹서비스를 호출한다.

관련된 유틸리티

관련된 유틸리티는 다음과 같다.

● tmmbfgen

● untmmbfgen

● xwsdlgen

관련된 설정 파일

관련된 설정 파일은 다음과 같다.

● Tmax 환경 설정 파일

● 웹서비스 게이트웨이 설정 파일

● 서비스 정보 파일(서비스 정보 바이너리 파일)

제1장 웹서비스 소개 5

Page 20: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 21: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

제2장 설정

웹서비스 게이트웨이를 동작시키기 위해서는 서비스 정보 파일, 웹서비스 게이트웨이 설정 파일, Tmax

환경 설정 파일이 필요하다.

2.1. 서비스 정보 파일Tmax의 서비스를 웹서비스로 사용하기 위해서는 외부로 제공할 서비스들의 설명이 필요하다. 이 정보 파

일은 서비스의 이름, Input 파라미터, Output 파라미터의 정보를 기술함으로써 표현된다. 이렇게 정의된

파일은 웹서비스 게이트웨이에서 수신된 SOAP 메시지를 Tmax 버퍼로 변환, 서비스 결과를 SOAP 메시

지로 변환시에 사용하고 서비스 요청자를 위해서 WSDL 문서 생성시에도 사용한다.

서비스 정보 파일이 그대로 사용되지는 않고 tmmbfgen 유틸리티로 변환된 파일을 웹서비스 게이트웨이

와 xwsdlgen에서 사용한다.

2.1.1. 파일 형식

서비스 정의는 서비스 정보(이름, INPUT 파라미터 타입, OUTPUT 파라미터 타입), INPUT 파라미터 정보,

OUTPUT 파라미터 정보로 구성한다.

서비스의 표현은 SERVICE 절, REQUEST 절, RESPONSE 절을 사용해서 표현한다. SERVICE 절 이후

로의 내용은 서비스 정보, REQUEST 절 이후로의 내용은 INPUT 파라미터 정보, RESPONSE 절 이후로

의 내용은 OUTPUT 파라미터 정보를 표현한다.

request-response 동작 방식을 원한다면 REQUEST, RESPONSE 를 모두 정의해야 하고 one-way 방식

을 원한다면 REQUEST 만을 정의한다.

한 파일안에 여러 개의 서비스가 정의 가능하며 대소문자를 구분하기 때문에 정확하게 작성해야 한다.

REQUESET 나 , RESPONSE 에 필드가 내부에 struct 를 지원한다면 STRUCT 절에 해당하는 데이터 타

입을 기록하여 이용할 수 있다.

다음은 SERVICE 절의 키워드에 대한 설명이다.

설명필수여부키워드

외부에서 제공하는 오퍼레이션의 이름이다.필수name

실제 Tmax 에서 제공하는 서비스 이름이다. 이 항목이 정의되어 있

지 않으면 name 항목이 tmaxname 과 같다고 처리한다.

옵션tmaxname

제2장 설정 7

Page 22: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

설명필수여부키워드

input 파라미터의 type(STRING, CARRAY, STRUCT, FDL, char,

short, int, float, double) , input 파라미터가 존재하지 않는다면 정의

하지 않는다.

옵션intype

output 파라미터의 type(STRING, CARRAY, STRUCT, FDL, char,

short, int , float, double) , output 파라미터가 존재하지 않는다면 정

의하지 않는다.

옵션outtype

input 파라미터 type이 STRUCT이거나 FDL일 경우 struct의 이름이

나 사용자 정의 이름이다. (STRUCT일 경우에는 SDL 에 정의된 struct

옵션instruct

이름 , FDL 일 경우 임의로 사용자가 정해준다. – FDL일 경우 값을

지정하지 않을 경우 자동으로 “서비스이름RequestFDL” 로 값을 저

장한다.)

output 파라미터 type이 STRUCT이거나 FDL일 경우 struct의 이름

이나 사용자 정의 이름이다. (STRUCT일 경우에는 SDL에 정의된

옵션outstruct

struct 이름 , FDL일 경우 임의로 사용자가 정해준다. – FDL일 경우

값을 지정하지 않을 경우 자동으로 “서비스이름ResponseFDL” 로

값을 저장한다.)

Tmax에서 사용하고 있는 instruct이 이름과 웹서비스에서 사용하고

있는 REQUEST 이름이 다를 경우에 웹서비스에서 사용하는 이름을

정의한다.

옵션inalias

Tmax에서 사용하고 있는 outstruct이 이름과 웹서비스에서 사용하

고 있는 RESPONSE 이름이 다를 경우에 웹서비스에서 사용하는 이

름을 정의한다.

옵션outalias

다음은 REQUEST, RESPONSE 절의 키워드에 대한 설명이다.

설명필수여부키워드

파라미터 이름이다.필수name

파라미터 타입(char, int, long, float, double, stirng, carray,struct)이

다.

필수type

해당하는 전체 type(intype or outtpye)이 STRUCT 이거나 FDL일 경

우 이 필드가 최대 몇 개 입력 될 수 있는지 제한 할 수 있다.

옵션maxoccurs

해당하는 전체 type(intype or outtpye)이 STRUCT 이거나 FDL 일 경

우 이 필드가 최소 몇 개가 입력되야 되는지 제한 할 수 있다.

옵션minoccurs

wsdl로 변경될 경우 restriction 항목과 동일하다. length, minLength,

maxLength, enumeration, pattern, minExclusive, maxExclusive,

옵션restriction

minInclusive, maxInclusive, totalDigit, fractionDigit (예:

length=”3”,patter=”ab?”)

type이 struct일 경우 struct 이름을 정의한다.옵션subtype

8 Tmax Gateway Guide (WebService)

Page 23: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

다음은 STRUCT 절의 키워드에 대한 설명이다.

설명필수여부키워드

struct 이름이다.필수name

TYPE절에 소속된 필드들을 정의한다.필수TYPE

다음은 STRUCT 안의 TYPE 절 키워드에 대한 설명이다.

설명필수여부키워드

파라미터 이름이다.필수name

파라미터 타입(char, int, long, float, double, stirng, carray,struct)이

다.

필수type

해당하는 전체 type(intype or outtpye)이 STRUCT 이거나 FDL 일 경

우 이 필드가 최대 몇 개 입력 될 수 있는지 제한 할 수 있다.

옵션maxoccurs

해당하는 전체 type(intype or outtpye)이 STRUCT 이거나 FDL 일 경

우 이 필드가 최소 몇 개가 입력되야 되는지 제한 할 수 있다.

옵션minoccurs

wsdl로 변경될 경우 restriction 항목과 동일하다. length, minLength,

maxLength, enumeration, pattern, minExclusive, maxExclusive,

옵션restriction

minInclusive, maxInclusive, totalDigit, fractionDigit (예:

length=”3”,patter=”ab?”)

type이 struct일 경우 struct 이름을 정의한다.옵션subtype

2.1.2. tmmbfgen, untmmbfgen

사용자가 작성한 서비스 정보 파일은 그대로 웹서비스 게이트웨이와 xwsdlgen에서 사용할 수 없다.

tmmbfgen으로 새로운 파일을 생성해야 한다. tmmbfgen에 의해서 생성된 파일을 서비스 정보 바이너리

파일이라고 칭한다.

tmmbfgen을 하면 문법을 체크하고 파라미터의 타입 체크를 통해서 웹서비스 게이트웨이에서 참조하기

전에 미리 유효성 검사를 할 수 있으며 텍스트 문서를 여러 개로 분할하여 관리가 가능하다.

tmmbfgen은 다음과 같은 3가지 방법으로 사용 가능하다.

● 새로운 서비스 정보 바이너리 파일 생성

tmmbfgen -r sample1.txt,sample2.txt -o sample

sample 을 생성하고 sample1.txt 와 sample2.txt 에 정의된 서비스 정보를 sample에 입력한다.

● 기존 서비스 정보 바이너리 파일에 추가

제2장 설정 9

Page 24: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

tmmbfgen -i sample3.txt -o sample

기존 sample 파일에 sample3.txt에 정의된 서비스 정보를 추가한다. 만약 같은 서비스가 있다가 덮어쓰

기 한다.

● 기존 서비스 정보 바이너리에서 특정 서비스 삭제

tmmbfgen -d SVC1,SVC2 -o sample

sample 파일에서 서비스 SVC1, SVC2 의 정보를 삭제한다.

untmmbfgen으로 서비스 정보 바이너리 파일을 사용자들이 알아볼 수 있도록 다시 역변환 해줄 수 있다.

untmmbfgen -i sample -o unsample.txt

2.1.3. 예제

메시지 타입에 따라서 서비스 정보 파일로 어떻게 표현되는지 설명한다.

STRING 타입문자열을 받아서 대문자로 변화하여 반환하는 서비스이다.

설명항목

char[20]INPUT 파라미터

char[20]OUTPUT 파라미터

다음은 TOUPPER 서비스 정보 파일 예제이다.

SERVICE

name = TOUPPER

intype = STRING

outtype = STRING

REQUEST

name = req

type = string

RESPONSE

10 Tmax Gateway Guide (WebService)

Page 25: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

name = result

type = string

STRUCT 타입

문자열의 길이와 문자열을 가진 struct를 받아서 대문자로 변환하여 반환하는 서비스이다.

설명항목

kstrdataINPUT 파라미터

kstrdataOUTPUT 파라미터

다음은 TOUPPERSDL 서비스 정보 파일 예제이다.

SERVICE

name = TOUPPERSDL

intype = STRUCT

outtype = STRUCT

instruct = kstrdata

outstruct = kstrdata

REQUEST

name = len

type = int

name = str

type = string

RESPONSE

name = len

type = int

name = str

type = string

다음은 SDL 파일 예제이다.

struct kstrdata {

int len;

char sdata[20];

}

제2장 설정 11

Page 26: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

FILED 타입

문자열 필드를 입력받아 대문자로 변환하여 반환하는 서비스이다.

설명항목

필드 INPUTINPUT 파라미터

필드 OUTPUTOUTPUT 파라미터

다음은 TOUPPERFDL 서비스 정보 파일 예제이다.

SERVICE

name = TOUPPERFDL

intype = FDL

outtype = FDL

instruct = toupfdl

outstruct = toupfdl

REQUEST

name = INPUT

type = string

RESPONSE

name = OUTPUT

type = string

다음은 FDL 파일 예제이다.

INPUT 101 string - -

OUTPUT 102 string - -

2.2. 웹서비스 게이트웨이 설정 파일웹서비스 게이트웨이가 시작할 때 웹서비스 게이트웨이 설정 파일을 읽어서 자신이 어떤 Tmax 서비스를

제공하는지 HTTP listen할 IP와 포트 정보를 결정한다.

웹서비스 게이트웨이 설정 파일은 제공할 서비스 목록, 바인딩할 HTTP 주소를 포함하고 있다. 설정 파일

은 웹서비스 게이트웨이 뿐만 아니라 xwsdlgen에서도 사용한다.

2.2.1. 파일 형식

웹서비스 게이트웨이 설정 파일은 <Configuration> 을 root element로 가지는 XML로 구성한다. sub element

는 웹서비스 제공자 역할을 할 경우에는 <in> 아래에 설정하고 웹서비스 요청자 기능을 제공한다면 <out>

에 설정을 정의한다. <in>의 sub element는 제공할 서비스 리스트를 설명하는 <Servicelist>와 바인딩할

주소를 설명하는 <GWInstance>로 표현한다.

12 Tmax Gateway Guide (WebService)

Page 27: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

<out>의 sub element는 호출할 웹서비스 목록인 <ServiceList>와 접속할 위치를 속성으로 가진다.

다음은 <in>의 Sub element에 대한 설명이다.

● <Servicelist>

제공할 서비스 목록을 sub element <service>를 이용해 표현한다.

– Attribute: id 서비스 리스트의 이름으로 WSDL 문서 생성시 namespace 생성시 사용 <Servicelist>한

다.

– Sub Element : <service> 제공할 서비스 하나의 이름을 나타낸다.

– Attribute : name 서비스 정보 파일에 SERVICE 절의 name에 적용한 이름을 적용한다.

<Servicelist id=”sample”> <service name=”TOUPPER” />

<servicename=”TOUPPERSDL” /> </Servicelist>

– Attribute : wswns WSDL 문서 생성시 root element의 namespace로 적용한다.

– Attribute : typens WSDL 문서 생성시 type에 관련된 element의 namespace로 적용한다.

● <GWInstance>

– Sub Element : HTTP

– Attribute : address 웹서비스 게이트웨이가 listen하게 될 HTTP 주소와 포트를 정의한다.

<GWInstance> <HTTP address="127.0.0.1:10032"/> </GWInstance>

다음은 <out>의 Sub element에 대한 설명이다.

● <out>

제공할 서비스 목록을 sub element <service>를 이용해 표현한다.

– Attribute: uri 실제 서비스를 요청 할 웹서비스 제공자의 주소이다.

– Attribute: soap_version 서비스 요청할 SOAP 버전(1.1, 1.2)이다.

– Attribute: encoding_stype ( rpc, doc)

– Attribute: wsns wsdl 파일의 상위 targetNameSpace이다.

– Attribute: typens wsdl 파일의 data type 의 NameSpace이다.

제2장 설정 13

Page 28: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

● <Servicelist>

호출할 서비스 목록을 sub element <service>를 이용해 표현한다.

– Sub Element : <service> 제공할 서비스 하나의 이름을 나타낸다.

– Attribute : name 서비스 정보 파일에 SERVICE 절의 name에 적용한 이름을 적용한다.

<Servicelist id=”sample”> <service name=”TOUPPER” />

<servicename=”TOUPPERSDL” /> </Servicelist>

2.2.2. 예제

다음은 TOUPPER, TOUPPERSDL, TOUPPERFDL을 제공하는 게이트웨이 설정 파일이다.

<?xml version="1.0" encoding="UTF-8"?>

<Configuration xmlns="http://www.tmax.co.kr/twsp/twsgwconfig/">

<in>

<Servicelist id="TmaxSampleECHO" >

<Service name="TOUPPER_TMAX" />

</Servicelist>

<GWInstance>

<HTTP address="192.168.1.43:5001"/>

</GWInstance>

</in>

<out uri="http://192.168.11.240:80/axis2/services/TmaxSampleTouppers"

soap_version = "1.2" encoding_style="rpc"

wsns = "http://192.168.11.240:80/axis2/services/TmaxSampleTouppers"

typens= "">

<Servicelist>

<Service name="TOUPPER" />

<Service name="TOUPPERFDL" />

</Servicelist>

</out>

<out uri="http://192.168.11.240:80/axis2/services/RPCSample"

soap_version = "1.1" encoding_style="rpc"

wsns=

"http://192.168.11.240:80/axis2/services/RPCSample/RPCSample"

typens=

"http://192.168.11.240:80/axis2/services/RPCSample/RPCSampleType">

<Servicelist>

<Service name="TOUPPERSDL" />

</Servicelist>

14 Tmax Gateway Guide (WebService)

Page 29: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

</out>

</Configuration>

2.3. Tmax 설정

2.3.1. GATEWAY 절

Tmax 환경 설정의 GATEWAY 절의 설정을 따르며 필요한 필수 속성은 GWTYPE, CLOPT(-c,-m),

NODENAME, DIRECTION 이다.

다음은 Tmax 환경 설정의 필수 속성에 대한 설명이다.

설명속성

반드시 “WSGW” 값을 입력해야 한다.GWTYPE

사용할 웹서비스 설정 파일과 서비스 정보 바이너리 파일의 이름을 설정해야

한다. 이 파일들은 $TMAXDIR/config 안에 존재해야 한다.

CLOPT

웹서비스 게이트웨이를 사용하는 노드 이름을 입력한다.NODENAME

웹서비스 제공자 역할일 경우에는 IN, 웹서비스 요청자 역할일 경우에는 OUT

으로 입력한다.

DIRECTION

listen할 포트번호를 입력한다.PORTNO

다음은 Tmax 환경 설정 파일 예제이다.

*SERVICE

TOUPPER SVRNAME = WSGWOUT

TOUPPERSDL SVRNAME = WSGWOUT

TOUPPERFDL SVRNAME = WSGWOUT

*GATEWAY

WSGWOUT

GWTYPE=WSGW,

NODENAME=tmaxi4,

PORTNO=5005,

RGWADDR="192.168.11.240",

RGWPORTNO=80,

DIRECTION=OUT,

CLOPT="-csample.xml -msample",

CPC=3

제2장 설정 15

Page 30: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 31: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

제3장 라이브러리

웹서비스 요청자 기능을 위해서 기본으로 게이트웨이 실행 파일을 제공한다.

추가적으로 사용자가 임으로 Tmax 메시지를 Soap 메시지로 변환하기 위해서는 웹서비스 게이트웨이 라

이브러리와 제공하는 callback 함수를 구현하여 빌드하여 게이트웨이 실행 파일을 만들어서 실행할 수 있

다.

다음은 웹서비 게이트웨이 라이브러리에 대한 설명이다.

3.1. callback 함수제공하는 라이브러리는 libwsgw이다.

사용자가 게이트웨이에서 요청을 보내거나 응답을 받을 경우 선처리를 하고 싶을 경우에는 이 라이브러

리와 callback 함수를 구현하여 실행 파일로 빌드 후 wsgw 로 만들어서 처리가 가능하다.

구현해야 할 함수 목록은 다음과 같다.

/* 웹서비스 게이트웨이에서 호출되는 callback 함수 */

/* tmax -> 외부 로 요청이 호출됨

tmaxmsg [in] : 변환될 tmaxmsg

ilen [in] : tmaxmsg 의 길이

soapmsg [out] : 변환된 soapmsg - 내부에서 free하기 때문에 반드시 malloc으로 할당해야 한

다.

olen [out] : 변환된 soapmsg 의 길의

service [out] : 실제 서비스 이름 - 내부에서 free하기 때문에 반드시 malloc으로 할당해야 한

다.

uri [out] : uri - 내부에서 free하기 때문에 반드시 malloc으로 할당해야 한다.

soap_version [out] : soap version ( 1.1 or 1.2 ) - 내부에서 free하기 때문에 반드시

malloc으로 할당해야 한다.

*/

int (*request_from_tmax)(char *tmaxmsg, int ilen, char **soapmsg, int *olen , char

**service, char **uri, char **soap_version);

/* 외부 -> tmax로의 요청에 대한 응답이 있을 경우 호출되는 callback 함수

tmaxmsg [in] : 변환될 tmaxmsg

soapmsg [out] : 변환된 soapmsg

olen [out] : 변환된 soapmsg 의 길의

service [out] : 실제 서비스 이름

*/

int (*reply_from_tmax)(char *tmaxmsg, char **soapmsg, int *olen, char **service);

제3장 라이브러리 17

Page 32: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

/* 외부 -> tmax로의 요청이 있을 경우 호출되는 callback 함수

soapmsg [in] : 변환될 soapmsg

soapmsglen [in] : soapmsg의 길이

tmaxmsg [out] : 변환된 tmaxpmsg

service [out] : 실제 서비스 이름

*/

int (*request_from_remote)(char *soapmsg, int soapmsglen, char **tmaxmsg, char

**service);

/* tmax -> 외부로의 요청에 대한 응답이 있을 경우 호출되는 callback 함수

soapmsg [in] : 변환될 soapmsg

soapmsglen [in] : soapmsg의 길이

tmaxmsg [out] : 변환된 tmaxpmsg

olen [out] : tmaxmsg의 길이

*/

int (*reply_from_remote)(char *soapmsg, int soapmsglen, char **tmaxmsg, int *olen);

사용하는 코드는 다음과 같다.

#include <usrinc/wsgw_user.h>

int main(int argc, char *argv[])

{

request_from_tmax = NULL;

reply_from_tmax = NULL;

request_from_remote = NULL;

reply_from_remote = NULL;

return wsgw_main(argc,argv);

}

3.2. 데이터 변환 라이브러리Tmax 메시지와 SOAP 메시지 변환을 위해서 제공하는 라이브러리이다.

제공하는 라이브러리는 libwsgw이다.

웹서비스 게이트웨이에서 rule에 따라서 Tmax 버퍼를 SOAP 메시지로 자동으로 변환하지만 사용자가 임

의로 svrlib에서 변환을 하고 싶을 경우 이 라이브러리를 사용한다.

다음은 데이터 변환 라이브러리에서 사용하는 함수에 대한 설명이다.

/* 데이터 변환 함수 */

/* 환경 설정 적용

configfile [in] : 웹서비스 환경설정 파일 경로

18 Tmax Gateway Guide (WebService)

Page 33: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

metafile [in] : 웹서비스 정보 파일 경로

*/

int init_config(char *configfile, char *metafile);

/* tmax msg를 soap msg 로 전환하는 함수

svcname [in] : 서비스 이름

tmaxmsg [in] : 변환될 tmax msg

soapmsg [out] : 이 함수 안에서 memory alloc 시킴

olen [out] : soap msg 길이

subtype [in] : tmaxmsg가 구성된 struct 이름

uri [in] : 웹서비스 제공자의 URI

soapversion [in] : 변환될 soap msg 의 version (1.1 or 1.2)

encodingstyle [in] : 변환될 soap msg 의 encoding type (rpc or doc)

wsns [in] : 변환될 soap msg 의 NameSpace

typens [in] : 변환될 soap msg 의 type NameSpace

*/

int convert_tmax_to_soap(char *svcname, char *tmaxmsg, char **soapmsg, int *olen,

char *subtype, char *uri, char *soapversion, char*encodingstyle, char *wsns,

char *typens );

/* soap msg를 tmax msg 로 전환하는 함수

soapmsg [in] : 변환될 tmax msg

soapmsglen [in] : soap msg의 길이

tmaxmsg [out] : 이 함수 안에서 memory alloc 시킴

len [out] : tmaxmsg 의 길이

*/

int convert_soap_to_tmax(char *soapmsg, int soapmsglen, char **tmaxmsg, int *len);

제3장 라이브러리 19

Page 34: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 35: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

제4장 관리

웹서비스 게이트웨이 상태 정보를 보거나 재시작하는 방법에 대해 설명한다.

4.1. 상태 정보 보기tmadmin을 통해서 알 수 있다. Tmax에서 제공하는 정보는 기본정보와 추가된 명령어 wsgwinfo를 통해서

알 수 있다.

4.1.1. wsgwinfo

tmadmin에서 wsgwinfo를 입력하면 전체 웹서비스 게이트웨이의 정보들을 출력한다. 정보는 웹서비스 게

이트웨이가 부트된 시간(load_time), 현재 접속중인 클라이언트 수(current_client), 한 서비스를 처리하기

까지 걸린 최장 시간(max_attach_time)이다.

사용방법은 다음과 같다.

wsgwinfo [-i svrid[ svrid]]

옵션을 주지 않을 경우 모든 웹서비스의 게이트웨이 정보를 출력한다.

"-i" 옵션을 적용할 경우 뒤에 입력된 svrid 의 웹서비스 게이트웨이의 정보만 출력한다.

wsgwinfo –i 0 1 2

4.2. 동적 설정tmadmin을 통해서 수행한다.

Tmax를 운영중에 서비스 정보 설정을 변경하거나 웹서비스 게이트웨이 설정을 변경할 상황이 생길 수 있

다. 이런 경우는 Tmax 시스템은 tmadmin의 wsgwreload 명령어를 실행하여 적용한다. 명령어가 실행되면

웹서비스 게이트웨이는 새롭게 요청되는 서비스에는 응답하지 않으며 이미 처리중인 서비스만 처리한 후

설정을 적용하고 서비스를 처리하기 시작한다.

제4장 관리 21

Page 36: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

4.2.1. wsgwreload

sgwreload만 실행하면 전체 웹서비스 게이트웨이가 설정을 다시 로드한다. wsgwreload에 "–i" 옵션으로

특정 서버 아이디 리스트를 지정하면 지정된 웹서비스 게이트웨이만이 변경된 설정을 적용한다.

wsgwreload –i 0 1 2

22 Tmax Gateway Guide (WebService)

Page 37: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

제5장 예제

Tmax 서비스인 ECHOSTRING, ECHOSDL, ECHOFDL (input 과 output 이 동일한 서비스)을 웹서비스로

제공하는 방법을 순서대로 설명하고 실제로 Axis1.4 를 이용해서 클라이언트를 만들어서 실행한다.

5.1. 서비스 생성

5.1.1. 서버 프로그램

ECHO 서비스들은 입력된 버퍼와 동일한 버퍼를 반환하는 서비스이다.

서버 프로그램 생성을 위해 필요한 파일은 sdl 정의 파일(demo.s), fdl 정의 파일(demo.f), 서버 소스(sample.c)

이다.

#include <stdio.h>

#include <usrinc/atmi.h>

#include <usrinc/fbuf.h>

#include "../sdl/demo_sdl.h"

ECHOSTRING(TPSVCINFO *msg)

{

printf("client message : %s \n", msg->data );

tpreturn(TPSUCCESS, 0, (char *)msg->data, msg->len, 0);

}

ECHOSDL(TPSVCINFO *msg)

{

struct echo_s *rcvbuffer;

struct echo_s test;

struct echo_s test_s;

rcvbuffer = (struct echo_s *)msg->data;

printf("rcvbuffer\n");

printf("char : [%d] \n"

"short : [%d] \n"

"int : [%d] \n"

"float: [%f] \n"

"double: [%lf] \n"

제5장 예제 23

Page 38: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

"string: [%s] \n",

rcvbuffer->charvalue,

rcvbuffer->shortvalue,

rcvbuffer->intvalue,

rcvbuffer->floatvalue,

rcvbuffer->doublevalue,

rcvbuffer->stringvalue

);

tpreturn(TPSUCCESS, 0, (char *)msg->data, msg->len,0);

}

ECHOFDL(TPSVCINFO *msg)

{

fbprint((FBUF *)msg->data);

tpreturn(TPSUCCESS,0,(char *)msg->data, msg->len,0);

}

struct echo_s{

char charvalue;

short shortvalue;

int intvalue;

float floatvalue;

double doublevalue;

char stringvalue[20];

};

sdlc 로 빌드한다.

CHARVALUE 2100 char

SHORTVALUE 2101 short

INTVALUE 2102 int

FLOATVALUE 2104 float

DOUBLEVALUE 2105 double

STRINGVALUE 2106 string

fdlc 로 빌드한다.

24 Tmax Gateway Guide (WebService)

Page 39: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

5.2. 웹서비스 설정

5.2.1. 서비스 정보 파일 생성

SERVICE

name = echostring

tmaxname = ECHOSTRING

intype = STRING

outtype = STRING

REQUEST

name = req

type = string

restriction = maxLength="19"

RESPONSE

name = result

type = string

restriction = maxLength="19"

SERVICE

name = echosdl

tmaxname = ECHOSDL

intype = STRUCT

outtype = STRUCT

instruct = echo_s

outstruct = echo_s

REQUEST

name = charvalue

type = char

name = shortvalue

type = short

name = intvalue

type = int

name = floatvalue

type = float

name = doublevalue

type = double

name = stringvalue

type = string

restriction = maxLength="19"

RESPONSE

name = charvalue

type = char

name = shortvalue

type = short

name = intvalue

제5장 예제 25

Page 40: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

type = int

name = floatvalue

type = float

name = doublevalue

type = double

name = stringvalue

type = string

restriction = maxLength="19"

SERVICE

name = echofdl

tmaxname = ECHOFDL

intype = FDL

outtype = FDL

instruct = echofdlRequestFDL

outstruct = echofdlResponseFDL

REQUEST

name = CHARVALUE

type = char

maxoccurs = 50

name = SHORTVALUE

type = short

maxoccurs = 50

name = INTVALUE

type = int

maxoccurs = 50

name = FLOATVALUE

type = float

maxoccurs = 50

name = DOUBLEVALUE

type = double

maxoccurs = 50

name = STRINGVALUE

type = string

maxoccurs = 50

RESPONSE

name = CHARVALUE

type = char

maxoccurs = 50

name = SHORTVALUE

type = short

maxoccurs = 50

name = INTVALUE

type = int

maxoccurs = 50

name = FLOATVALUE

type = float

26 Tmax Gateway Guide (WebService)

Page 41: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

maxoccurs = 50

name = DOUBLEVALUE

type = double

maxoccurs = 50

name = STRINGVALUE

type = string

maxoccurs = 50

sample.txt 파일을 $TMAXDIR/config 디렉터리에 위치시키고 tmmbfgen으로 서비스 정보 바이너리 파일

을 생성한다.

tmmbfgen –r sample.txt –o sample

5.2.2. 웹서비스 게이트웨이 설정 파일 생성

sample.xml

<?xml version="1.0" encoding="UTF-8"?>

<Configuration xmlns="http://www.tmax.co.kr/twsp/twsgwconfig/">

<Servicelist id="TmaxSampleECHO" >

<Service name="echostring" />

<Service name="echosdl" />

<Service name="echofdl" />

</Servicelist>

<GWInstance>

<HTTP address="$endpoint"/>

</GWInstance>

</Configuration>

$endpoint에 외부로 보여질 주소를 입력한다. (예 : 192.168.1.2:80 )

파일을 $TMAXDIR/config 디렉터리에 위치시킨다.

5.3. Tmax 환경 파일 생성

*DOMAIN

domain SHMKEY = 77521, MINCLH = 1, MAXCLH = 2,

TPORTNO = 15000, BLOCKTIME = 30, MAXSACALL=1024, MAXCACALL=1024

*NODE

$NODENAME TMAXDIR = "$TMAXDIR",

APPDIR = "$TMAXDIR/appbin",

PATHDIR = "$TMAXDIR/path",

TLOGDIR = "$TMAXDIR/log/tlog",

ULOGDIR = "$TMAXDIR/log/ulog",

제5장 예제 27

Page 42: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

SLOGDIR = "$TMAXDIR/log/slog",

MAXCPC=2000, MAXGWCPC=300

*SVRGROUP

svg1 NODENAME = $NODENAME

*SERVER

sample SVGNAME = svg1

*SERVICE

ECHOSTRING SVRNAME=sample

ECHOSDL SVRNAME=sample

ECHOFDL SVRNAME=sample

*GATEWAY

WSGW1 GWTYPE=WSGW,

CLOPT="-csample.xml -msample",

NODENAME=$NODENAME,

DIRECTION=IN,

PORTNO=80

$NODENAME에 해당하는 Machine 이름을 입력한다.

$TMAXDIR에 Tmax가 설치된 디렉터리 경로를 입력한다.

5.4. Axis1.4 클라이언트 프로그램 생성

5.4.1. WSDL 파일 생성

xwsdlgen 유틸리티를 이용해서 wsdl 파일을 생성한다.

xwsdlgen –m sample –g sample.xml –o sample.wsdl

5.4.2. Stub 생성

Stub 생성을 위해서는 서버에서 생성한 sample.wsdl 파일이 필요하다.

다음과 같이 필요한 jar 파일을 AXIS_CLASS_PATH에 설정한다.

java –cp $AXIS_CLASS_PATH;. org.apache.axis.wsdl.WSDL2Java

sample.wsdl –p echosamplesrpc

위의 명령을 실행하면 echosamplesrpc 폴더에 클라이언트를 작성할 경우 필요한 파일들이 생성된다. 이

패키지를 이용해서 아래의 클라이언트를 작성한다.

28 Tmax Gateway Guide (WebService)

Page 43: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

참고

wsdl2java에 대한 자세한 사항은 apache site를 참고한다.

echoclient.java

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

public class EchoClient

{

public static void main(String[] args){

String url = "HTTP://192.168.1.2:80";

EchoClientWithRPC client_r = new EchoClientWithRPC(url);

client_r.test();

}

}

class EchoClientWithRPC

{

private echosamplesrpc.TmaxSampleECHOLocator service;

private echosamplesrpc.TmaxSampleECHOPortType port;

public EchoClientWithRPC(String url)

{

try

{

service = new echosamplesrpc.TmaxSampleECHOLocator();

service.setEndpointAddress(service.getTmaxSampleECHOPortWSDDServiceName() ,

url);

port = service.getTmaxSampleECHOPort();

}

catch(ServiceException e)

{

e.printStackTrace();

}

}

private void echostring()

{

try

{

String req = "abc";

String response = port.echostring(req);

System.out.println("echostring result > " + response);

제5장 예제 29

Page 44: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

}catch(RemoteException e)

{

System.out.println(e.getMessage());

}

}

private void echosdl()

{

try

{

echosamplesrpc.Echo_s req = new echosamplesrpc.Echo_s();

req.setCharvalue((byte)49);

req.setShortvalue((short)2);

req.setIntvalue(3);

req.setFloatvalue(5.1f);

req.setDoublevalue(6.1);

req.setStringvalue("abc");

echosamplesrpc.Echo_s response = port.echosdl(req);

System.out.println("echosdl result >");

System.out.println("char value > " + response.getCharvalue() +"\nshort value

> " + response.getShortvalue() +

"\nint value > " + response.getIntvalue() + "\nfloat value > " +

response.getFloatvalue() +

"\ndouble value > " + response.getDoublevalue() + "\nstring value > " +

response.getStringvalue());

}catch(RemoteException e)

{

e.printStackTrace();

}

}

private void echofdl()

{

try

{

echosamplesrpc.EchofdlRequestFDL echofdlRequestFDL = new

echosamplesrpc.EchofdlRequestFDL();

echofdlRequestFDL.setCHARVALUE(new byte[]{(byte)49});

echofdlRequestFDL.setSHORTVALUE(new short[]{(short)2});

echofdlRequestFDL.setINTVALUE(new int[]{3});

echofdlRequestFDL.setFLOATVALUE(new float[]{5.1f});

echofdlRequestFDL.setDOUBLEVALUE(new double[]{6.1});

echofdlRequestFDL.setSTRINGVALUE(new String[]{"abc"});

echosamplesrpc.EchofdlResponseFDL response = port.echofdl(echofdlRequestFDL);

System.out.println("echofdl result >");

30 Tmax Gateway Guide (WebService)

Page 45: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

System.out.println("char value > " + response.getCHARVALUE()[0] +

"\nshort value > " + response.getSHORTVALUE()[0] +

"\nint value > " + response.getINTVALUE()[0] +

"\nfloat value > " + response.getFLOATVALUE()[0] +

"\ndouble value > " + response.getDOUBLEVALUE()[0] +

"\nstring value > " + response.getSTRINGVALUE()[0]

);

}catch(RemoteException e)

{

e.printStackTrace();

}

}

public void test()

{

echostring();

echosdl();

echofdl();

}

}

제5장 예제 31

Page 46: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기
Page 47: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

Appendix A. 유틸리티

A.1. tmmbfgen서비스 정보 파일(text)을 서비스 정보 바이너리 파일로 만드는 명령어이다. 사용자가 작성한 서비스 정보

파일은 그대로 웹서비스 게이트웨이와 xwsdlgen에서 사용할 수 없기 때문에 tmmbfgen으로 새로운 파일

을 생성해야 한다. tmmbfgen에 의해서 생성된 파일을 서비스 정보 바이너리 파일이라고 칭한다. tmmbfgen

을 하면 문법을 체크하고 파라미터의 타입 체크를 통해서 웹서비스 게이트웨이에서 참조하기 전에 미리

유효성 검사를 할 수 있으며 텍스트 문서를 여러 개로 분할하여 관리가 가능하다.

● 사용방법

tmmbfgen [-r text_file,] [-i text_file] [-d svc] -o binary_file -r

설명항목

서비스 정보 파일(text)을 입력한다.[-i text_file]

삭제할 서비스 이름 리스트를 입력한다.[-d svc]

생성할(변경할) 서비스 정보 바이너리 파일(default = sample)이다.-o binary_file

● 예제

다음은 새로운 서비스 정보 바이너리 파일 생성하는 예제이다. sample을 생성하고 sample1.txt와 sam

ple2.txt에 정의된 서비스 정보를 sample에 입력한다.

tmmbfgen -r sample1.txt,sample2.txt -o sample

다음은 기존 서비스 정보 바이너리 파일에 추가하는 예제이다. 기존 sample 파일에 sample3.txt에 정의

된 서비스 정보를 추가한다. 같은 서비스가 있는 경우 파일이 교체된다.

tmmbfgen -i sample3.txt -o sample

다음은 기존 서비스 정보 바이너리에서 특정 서비스 삭제하는 예제이다. sample 파일에서 서비스 SVC1,

SVC2의 정보를 삭제한다.

tmmbfgen -d SVC1,SVC2 -o sample

Appendix A. 유틸리티 33

Page 48: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

A.2. untmmbfgenuntmmbfgen은 서비스 정보 바이너리 파일을 서비스 정보 파일(text)로 만들어주는 명령어이다.

● 사용방법

untmmbfgen -i binary_meta_file -o text_file

설명항목

서비스 정보 바이너리 파일을 지정한다.-i binary_meta_file

생성될 서비스 정보 파일(text)을 지정한다.-o text_file

● 예제

다음은 untmmbfgen으로 서비스 정보 바이너리 파일을 사용자들이 알아볼 수 있도록 다시 역변환하는

예제이다.

untmmbfgen -i sample -o unsample.txt

A.3. xwsdlgen웹서비스 스펙 중 명세서 역할을 하는 WSDL 문서를 생성하는 명령어이다. 현재 WSDL 문서는 1.1, 2.0이

존재한다. xwsdlgen은 웹서비스 게이트웨이 환경 설정 파일과 서비스 정보 바이너리 파일을 입력 받아서

WSDL 문서를 생성한다.

● 사용방법

xwsdlgen [options] -g wsgw_config_file -m binary_meta_file -o wsdl_file

– Options

설명항목

- 0 : WSDL1.1 (default)w version

- 1 : WSDL2.0

- 0 : rpc (default)b binding_style

- 1 : document

– 설정 항목

설명항목

웹서비스 게이트웨이 환경 설정 파일을 설정한다.g wsgw_config_file

34 Tmax Gateway Guide (WebService)

Page 49: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

설명항목

서비스 정보 바이너리 파일을 설정한다.m binary_meta_file

생성할 WSDL파일을 설정한다.o wsdl_file

A.4. 내부 struct type 지원struct type에 char[]로 선언하고 서비스 정보 파일에는 char[]이 아니고 다른 데이터 type일 경우에도 변환

이 가능하다. sdl과 정보파일을 아래와 같이 설정할 경우 변환이 가능하다.

sdl을 다음과 같이 설정한다.

struct qmc_rq{

char value1[4];

/* struct depth1 */

char value2[4];

/* struct depth2 */

char value3[4];

char value4[4];

/* end depth2 */

char value5[4];

/* end depth1 */

char value6[4];

};

struct qmc_rps{

char value1[4];

/* struct r_depth1 */

char value2[4];

char value3[4];

/* end r_depth1 */

char value4[4];

};

struct LANG_POLICI01 {

char Xid_length[2];

char Xid[255];

char customerId_length[2];

char customerId[255];

char userId_num[4];

char userId_cont[16];

char loopback;

char freeFormAddress_num[4];

char freeFormAddress_cont[16];

char policyType_num[4];

Appendix A. 유틸리티 35

Page 50: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

char policyType_cont[16];

};

struct LANG_POLICO01 {

char Xid_length[2];

char Xid[255];

char customerId_length[2];

char customerId[255];

char Notification_num[4];

char Notification_cont[16];

char standardisedAddressAnd_num[4];

char standardisedAddressAnd_cont[16];

정보 파일을 다음과 같이 설정한다.

STRUCT

name = depth1

TYPE

name = value1

type = int

name = value2

type = struct

subtype = depth2

name = value3

type = int

STRUCT

name = depth2

TYPE

name = value1

type = int

name = value2

type = int

STRUCT

name = r_depth1

TYPE

name = value1

type = int

name = value3

type = int

SERVICE

36 Tmax Gateway Guide (WebService)

Page 51: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

name = TEST_STRUCT

tmaxname = TEST_STRUCT

intype = STRUCT

outtype = STRUCT

instruct = qmc_rq

outstruct = qmc_rps

REQUEST

name = value1

type = int

name = value2

type = struct

subtype = depth1

name = value3

type = int

RESPONSE

name = value1

type = int

name = value2

type = struct

subtype = r_depth1

name = value3

type = int

SERVICE

name = TOUPPER

tmaxname = TOUPPER

intype = STRING

outtype = STRING

REQUEST

name = req

type = string

restriction = maxLength="19"

RESPONSE

name = result

type = string

restriction = maxLength="19"

SERVICE

name = TOUPPERSDL1

tmaxname = TOUPPERSDL1

Appendix A. 유틸리티 37

Page 52: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

intype = STRUCT

outtype = STRUCT

instruct = wsgw_s

outstruct = wsgw_s

REQUEST

name = req

type = string

name = intvalue

type = int

name = shortvalue

type = short

name = floatvalue

type = float

name = doublevalue

type = double

name = charvalue

type = char

RESPONSE

name = result

type = string

name = intvalue

type = int

name = shortvalue

type = short

name = floatvalue

type = float

name = doublevalue

type = double

name = charvalue

type = char

SERVICE

name = TOUPPERSDL

tmaxname = TOUPPERSDL

intype = STRUCT

outtype = STRUCT

instruct = kstrdata

outstruct = kstrdata

REQUEST

name = len

type = int

name = str

type = string

38 Tmax Gateway Guide (WebService)

Page 53: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기

RESPONSE

name = len

type = int

name = str

type = string

STRUCT

name = requestHeaderI

TYPE

name = Xid-length

type = short

name = Xid

type = string

name = customerId-length

type = short

name = customerId

type = string

name = userId-num

type = int

name = userId-cont

type = string

name = loopback

type = char

STRUCT

name = GetStandardisedAddressAndTerI

TYPE

name = requestHeader

type = struct

subtype = requestHeaderI

name = freeFormAddress-num

type = int

name = freeFormAddress-cont

type = string

name = policyType-num

type = int

name = policyType-cont

type = string

Appendix A. 유틸리티 39

Page 54: Tmax Gateway Guide - TmaxSoft · Tmax의 기본 개념 이해 Java , C 프로그래밍의 이해 웹서비스에 대한 기본 이해 안내서의 제한 조건 본 안내서를 읽기