Microsoft Word - Tmax Getting Started Guide.doc

Size: px
Start display at page:

Download "Microsoft Word - Tmax Getting Started Guide.doc"

Transcription

1 Tmax Getting Started Guide

2 Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved Copyright Notice Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. 대한민국서울시강남구대치동 글라스타워 18 층우 ) Restricted Rights Legend This software and documents are made available only under the terms of the TmaxSoft License Agreement and may be used or copied only in accordance with the terms of this agreement. No part of this document may be reproduced, transmitted, or translated in any form or by any means, electronic, mechanical, manual, or optical, without the prior written permission of TmaxSoft Co., Ltd. 소프트웨어및문서는오직 TmaxSoft Co., Ltd. 와의사용권계약하에서만이용이가능하며, 사용권계약에따라서사용하거나복사할수있습니다. 또한이매뉴얼에서언급하지않은정보에대해서는보증및책임을지지않습니다. 이매뉴얼에대한권리는저작권에보호되므로발행자의허가없이전체또는일부를어떤형식이나, 사진녹화, 기록, 정보저장및검색시스템과같은그래픽이나전자적, 기계적수단으로복제하거나사용할수없습니다. Trademarks Tmax, WebtoB, WebT, and JEUS are registered trademarks of TmaxSoft Co., Ltd. All other product names may be trademarks of the respective companies with which they are associated. Tmax, WebtoB, WebT, JEUS 는 TmaxSoft Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Document Edition Date Version TMGS Jan 7, 2006 Tmax 4.0 Tmax 제품은아래표와같이 Tmax Base, Tmax Standard, Options 으로나누어집니다. 본서는 Tmax Standard 와옵션중에굵게기울임꼴로인쇄되어있는내용을포함하고있습니다. 1

3 Tmax Base Tmax Standard Tmax Options TP Function (Excluding 2 Phase Commit) TP Function + 2 Phase Commit Web Admin Console, X.25 Gateway, TCP/IP Gateway, Host-Link, Power Builder Interface Module, SERIAL Gateway, TCP/IP Service Gateway 책에관하여 는 Tmax 시스템을이용하여새로운시스템을개발하고자하는사용자에게 Tmax 시스템이가지고있는대표적인기능에대해서개괄적으로설명하는입문서이다. 따라서이문서는개발에앞서시스템구성을위한지침서혹은각기능에대한기본적인지식을습득하기위해활용될수있다. 실질적인개발을위해서는 Tmax 에서제공하는각종프로그래밍가이드를이용하기바란다. 누구를위한책인가? 이문서는 Tmax 시스템에대한전반적인이해와 Tmax 시스템이제공하는각종기능및특성에대한습득을위한기본서이다. 어떻게사용하는가? 1. 개요 : 1. 탄생배경 에서는기존시스템에대한문제점과이에대한해결책인미들웨어의등장에대해서소개한다. 2. 소개 에서는기존문제점을해결하기위해개발된 Tmax 시스템에대해서설명하며 3. 기능 과 4. 특징 에서는 Tmax 시스템의여러가지기능및특징에대해서이해하기쉽도록그림과함께간략하게설명한다. 5. 구조 에서는 Tmax 시스템내부적인구조를프로세스기반으로각각의기능과함께설명함으로써시스템구조를이해할수있도록하였다. 6. 지원환경 및 7. Tmax 설치를위한시스템사양 에서는 Tmax 시스템을사용하기에앞서요구되는기반시스템에대한기본적인자원에대해서설명하여 Tmax 시스템을처음도입하는사용자에게도움을주고자하였다. 8. TP Monitor 도입시고려할점 에서는 TP Monitor 를도입하는데있어서고려해야할점을객관적으로나열하여사용자가올바른판단을할수있도록하였다. 2

4 9. WebT 소개 에서는웹상에서트랜잭션을보장할수있는 WebT 에대한기본적인구조및 Tmax 시스템과어떻게연동될수있는지에대해서설명한다. 2. 응용프로그래밍 : Tmax 시스템을사용하여개발하는데있어서실질적으로사용될인터페이스와이를바탕으로작성된간략한샘플프로그램을제시하여시스템을이용하는방법에대해서설명하고자하였다. 관련서 Tmax Programming Guide Tmax Programming Guide(HostLink) Tmax Programming Guide(RCA) Tmax Programming Guide(RQ) Tmax Programming Guide(UCS) Tmax Programming Guide(WebT) Tmax Reference Manual Tmax FDL Reference Manual Tmax Administration Guide Tmax Error Message Manual 3

5 차례 1 Getting Started 탄생배경 TP Monitor 출현 중앙집중식환경의문제점 개방형분산시스템환경의문제점 Tmax 탄생 소 개 Tmax 란? 이용분야 필요성 도입효과 비용측면 : 개발및유지보수비용대폭절감 어플리케이션측면 성능측면 기 능 프로세스관리 기존 Client/Server 구조 (2-tier ) Tmax 를이용한 Client/Server 구조 (3-tier ) tier 와 3-tier 의개발모델비교 분산트랜잭션 부하조절 SLM (System Load Management) 에의한부하조절 DDR (Data Dependent Routing) 에의한부하조절 DLM (Dynamic Load Management) 에의한부하조절 장애대책 하드웨어장애 (Machine or Network) 소프트웨어장애 ( 서버프로세스의비정상적종료 ) 프로세스제어 Reliable Queue (RQ) Domain Gateway Service 특징 서비스방식

6 종류 RCA (Raw Client Agent) 구성 특징 서비스방식 SCA (Simple Client Agent) 구성 특징 서비스방식 RDP (Real Data Processor) 구성 특징 윈도우제어 WinTmax Library tmaxmt Library 자원관리 (Resource Management) Application 관리 이기종 Database 관리 이름서비스 (Naming Service) 시스템관리 (System Management) 정적시스템관리 동적시스템관리 monitoring 및 Administration 기능 보안기능 (Security) 특징 구 조 Domain 구성도 다중시스템환경에서의 Domain 구성도 Tmax Client/Server 프로그램구조 지원환경 Tmax 설치를위한시스템사양 Server 요구사항 (SUN기준) Client 요구사항 (Windows 95기준 ) TP Monitor 도입시고려할점 WebT 소개 WebT 란? 필요성 기능 기존웹서버시스템구성 WebT와 Tmax를이용한시스템구성

7 1.9.6 기대효과 Tmax 응용프로그래밍 분산트랜잭션의표준 : X/Open DTP Model X/Open DTP 란? X/Open DTP 모델구조도 기능적요소들 인터페이스 (Interfaces) 용어해설 Tmax API 함수개요및 Error 메세지 X/Open XATMI X/Open TX API Tmax API Tmax ATMI FDL API 에러메세지 Tmax 응용프로그램작성 Tmax 응용프로그램작성개요 클라이언트프로그램 서버프로그램 Client/Server간통신유형 동기형모드 비동기형모드 대화형모드 전달형모드 전달형모드 전역트랜잭션처리 FDL (Field Definition Language) 장점 저장방식 사용 Tmax API 함수들 Tmax 연결 / 해제 int tpstart(tpstart_t *tpinfo): Tmax 에연결 int tpend(): 응용프로그램과의연결을끊음 Buffer 관리 char *tpalloc(char *type, char *subtype, long size): 버퍼생성 char *tprealloc(char *bufptr, long size): 버퍼크기조정 void tpfree(char *bufptr): 할당된버퍼를 free 시킴 long tptypes(char *ptr, char *type, char *subtype)

8 2.4.3 서비스요구및응답 int tpcall(char *service, char *sbufp, long slength, char **rbufpp, long *rlength, long flags) int tpacall(char *service, char *bufptr, long length, long flags) int tpgetrply(int *handle, char **bufpp, long *length, long flags) int tpcancel(int handle) : tpacall() 에대한응답을취소함 대화형모드 int tpconnect(char *name, char *data, long length, long flags) int tpsend(int cd, char *data, long length, long flags, long *revent) 대화형서비스모드동작예 int tprecv(int cd, char **data, long *length, long flags, long *revent) int tpdiscon(int cd) 서비스종료 void tpreturn(int rval, int rcode, char *data, long len, long flags) 비요청메세지 int tpbroadcast (char *lnid, char *usrname, char *cltname, char *data, long len,long flags) int tpsendtocli(clientid *id, char *data, long len, long flags) Unsolfunc * tpsetunsol(unsolfunc *func) int tpgetunsol(int type, char **data, long *len, long flags) Error Log int userlog(const char *fmt,...) int UserLog(const char *fmt,...) char * tpstrerror(int err) Block Timeout int tpset_timeout(int timeout) 소켓정보 int tpgetpeer_ipaddr(struct sockaddr *name, int *namelen) int tpgetpeername(struct sockaddr *name, int *namelen) int tpgetsockname(struct sockaddr *name, int *namelen) 장애대책 int tptobackup() 트랜잭션관리 트랜잭션 서비스호출에의한시스템관리 시스템관리 int tmadmin(int cmd, void *arg, int opt_flag, long flags): 윈도우관련함수 WinTmaxStart(TPSTART_T *tpinfo) WinTmaxEnd(() WinTmaxSetContext(void *winhandle, unsigned int msgtype, int slot) WinTmaxSend(int recvcontext, char *svc, char *data, long len, long flags) 110 7

9 WinTmaxAcall(TPSTART_T *sinfo, HANDLE whandle, unsigned int msgtype, char *svc, char *sndbuf, int len, int flags); WinTmaxAcall2(TPSTART_T *sinfo, WinTmaxCallback fn, char *svc, char *sndbuf, int len, int flags); 기타 int tpsleep(int timeout) 컴파일및실행 Tmax 응용프로그램컴파일환경 클라이언트컴파일환경 서버컴파일환경 Tmax 시스템환경파일 Domain (DOMAIN 절 ) Node (NODE 절 ) Server group (SVRGROUP 절 ) Server (SERVER 절 ) Service (SERVICE 절 ) 선택절 (GATEWAY, ROUTING, RQ) Tmax 시스템의시동과종료 tmboot : Tmax 시스템시동 tmdown : Tmax 시스템종료 Tmax system 관리툴 config : 환경설정내용조회 (cfg) stat : 프로세스및서비스상태통계 (st) ti (Tmax Information) ci (Client Information) si (Server Information) Tmax 예제프로그램 기본프로그램 동기형통신 비동기형통신 대화형통신 Oracle 응용프로그램 Insert 프로그램 Select 프로그램 Informix 응용프로그램 Insert 프로그램 Select 프로그램 WebT 예제프로그램 Applet 예제

10 3 index

11 1 Getting Started 1.1 탄생배경 TP Monitor 출현 그림 1 TP Monitor 출현배경 10

12 중앙집중식환경의문제점 특정공급업체에의존도가매우높음 고가도입및유지보수비용과다 메인프레임환경이최우선시됨 사용자환경이고려되지않음 다른시스템으로프로그램이식곤란 이기종간통신이매우어려움 업무확장장애요소 개방형분산시스템환경의문제점 비효율적인시스템운영상의문제 급격한성능저하 서버간부하차이 장애대책미비 시스템의관리및감독의어려움 분산환경에따른관리문제 프로세스관리 다양한통신방식필요 시스템보안기능취약 장애발생시대처어려움 이기종 DBMS 및 Global Transaction 처리 복수공급자에따른문제 11

13 다른서버간운영방법상이 이기종서버간프로그램이식성문제 개발상의문제 O/S, 개발언어등이너무다양 Network,DBMS 등전문기술요구 미들웨어한종류로이질적인분산환경에서트랜잭션처리및프로세스관리의기능을제공 12

14 1.1.2 Tmax 탄생 1.2 소개 Tmax 란? 13

15 Transaction Maximization 의약어로서 트랜잭션처리극대화 를의미 X/Open, ISO, OSI 등각종국제표준을준수하여순수국내기술로개발 X/Open - DTP 응용프로그램 (AP), 트랜잭션관리자 (TM), 자원관리자 (RM), 통신자원관리자 (CRM) 등을기반으로호환성있는 API 와시스템구조명시 ISO - DTP 분산트랜잭션을지원하기위한기능과분리된개방형시스템상에존재하는다수의트랜잭션을상호조정가능하도록기본틀을명시 OSI - TP (ISO0026) 트랜잭션을원자화하는방법명시 분산환경을지원하는 TP-Monitor 트랜잭션의특성을지원하면서사용자에게는최적의개발환경을제공 클라이언트 / 서버 (C/S) 환경 하에서 최적의 솔루션을 제공하는 미들웨어 기존 TP-Monitors 의문제점을해결할수있는신기법이용 성능개선은물론모든장애에완벽하게대처하는차세대 TP- Monitor 이용분야 Large-scale OLTP Applications 항공및호텔예약업무 14

16 은행 On-line 업무 병원 OCS (Order Communication System) 업무 국방분야 고객및판매관리업무 ATM (Automatic Teller Machines) 신용카드승인업무 주식중개업무 제조공정관리 POS (Point-Of-Sale) 전화번호안내서비스 각종 Billing 업무 기타클라이언트 / 서버환경의모든 OLTP 업무 필요성 Application 개발용이 복잡한업무프로그램을데이터중심이아닌기능중심으로구성 효율적인 Application 관리 분산된시스템전체에대한관리기능제공 이기종 DBMS 자원관리 이기종간시스템에분산된데이터의일관성을보장 부하조절 15

17 최적의 Throughput 과신속한 Response Time 을보장하기위해정적, 동적부하조절지원 Performance 와 Reliability 적은서버자원으로많은클라이언트를관리하여 DBMS 의 Overhead 를줄이고응답시간향상 가격대비뛰어난성능 프로세스관리기능으로적은규모의하드웨어로서도많은업무를처리 도입비용절감 16

18 1.2.4 도입효과 비용측면 : 개발및유지보수비용대폭절감 어플리케이션측면 17

19 성능측면 Tmax 가없는경우 << 서버프로세스당 10 개 File Open & 0.5 M Memory 사용시 >> Tmax 가있는경우 18

20 << 서버프로세스당 10 개 File Open & 0.5 M Memory 사용시 >> 1.3 기능 프로세스관리 Tmax client/server process model (3-tier) 분산트랜잭션관리 2 Phase Commit 기반 Global transaction Recovery/Rollback 에의한안정성보장 트랜잭션중앙관리 Transaction Scheduling 부하조절 SLM (System Load Management) 에의한부하조절 DDR (Data Dependent Routing) 에의한부하조절 DLM (Dynamic Load Management) 에의한부하조절 장애대책 하드웨어적인장애발생시 19

21 Load balancing 을통한장애대책 Service backup 에의한장애대책 소프트웨어적인장애발생시 서버프로세스다운시장애대책 프로세스제어 TCS (Tmax Control Server) UCS (User Control Server) POD (Processing On Demand) Reliable Queue (RQ) 서비스요청에대한디스크큐처리 신뢰성보장 Domain Gateway Service 도메인간트랜잭션서비스처리및라우팅기능 RCA (Raw Client Agent) 2-tier 시스템에서 3-tier 시스템으로변환용이 Multi Thread 방식으로효율적으로처리 다중포트지원 SCA (Simple Client Agent) 2-tier 시스템에서 3-tier 시스템으로변환용이 non-tmax 클라이언트 /Tmax 클라이언트모두수용 다중포트지원 RDP (Real Data Processor) 20

22 UDP 통신데이터유형 Tmax 시스템을경유하지않는직접적인데이터전달 WinTmax Library 다중윈도우설정을위한클라이언트라이브러리 동시다발적인데이터수용 자원관리 Application 관리 Database 관리 이름서비스 간단하고용이한서비스호출 위치투명성제공 시스템관리 시스템상태및큐관리 시스템통계분석및보고서작성 보안기능 파일접근통제, 시스템접속제어, 사용자인증, 서비스접근제어, 보안패키지이용등 5 단계보안기능지원 프로세스관리 기존 Client/Server 구조 (2-tier ) 특징 client/server application 개발의가장일반적인방법 21

23 클라이언트하나당서버프로세스하나생성 문제점 클라이언트증가 서버프로세스증가 ( 프로세스생성, File 및 DB Open/Close 시간소요 ) 서버활용도의현저한저하 Tmax 를이용한 Client/Server 구조 (3-tier ) 특징 생성되는프로세스수조절가능 idle 중인서버프로세스스케줄링 서버프로세스의 Tuning 을통한최적의시스템운영 22

24 tier 와 3-tier 의개발모델비교 2-tier 3-tier 적용분야 소규모부서단위별업무 단일서버 소수사용자 ( 대략 50 미만 ) Batch 성업무분야 전사적업무 다중서버 대규모사용자 (50 명이상 ) OLTP 성업무및대량거래처리 장점 프로그램개발기간단축 (test 용이 ) 초기도입비용절감 단순한프로그램개발용이 Application 개발의모듈화 이기종 H/W 및 DB 환경에서상호연동가능 시스템 자원 최대한 활용 성능향상 확장용이 시스템관리, 부하분산, 장애대책추가보안기능 23

25 구현 단점 거래량 증가 시 급격한 성능저하 다른 platform 및 DB 환경에서상호연동불가능 확장이매우어려움 시스템관리, 부하분산, 장애대책추가보안기능구현불가능 프로그램개발기간장시간소요 (Client/server 결합 test) 초기도입비용증가 단순한프로그램도 C/S 분리개발 결론 3-tier 가 2-tier 보다성능, 확장성, 관리기능, 장애대책등의측면에서월등히우수한시스템으로구축가능 분산트랜잭션 분산트랜잭션관리란, 여러지역으로분산된환경에서다수의이기종하드웨어플랫폼및데이터베이스를이용하여실행하는트랜잭션의관리를의미한다. 트랜잭션은논리적으로하나의단위로처리함으로써다양한자원들을일괄적으로활용할수있으며분산된자원들간의자료무결성을유지할수있다. 분산처리방식은기본적으로국제표준인 X/Open 의모델 (DTP) 을기반으로하며이모델은 application program (AP), transaction manager(tm),resource manager (RM), communication resource manager (CRM) 4 요소로구성되어있다. X/Open DTP 의구조는다음과같다. 24

26 25

27 다음과같은절차로분산트랜잭션을구현한다. Two-phase commit (2PC) protocol Global Transaction 다수의이기종하드웨어및데이터베이스를하나의논리적인단위 ( 트랜잭션 ) 로취급하여작업 Recovery / Rollback 트랜잭션이실패하면현재사용중인자원관리자의내용이바뀌었다하더라도이전의내용으로회복 트랜잭션중앙관리 노드들이물리적으로멀리떨어져있더라도노드간에발생하는트랜잭션에대하여중앙에서관리및통제 Transaction Scheduling 26

28 우선순위를고려한동시성제어기법지원 부하조절 SLM (System Load Management) 에의한부하조절 H/W 성능에따라고유의작업처리량을설정 한노드의서비스요청량이작업처리량을초과할경우다른노드로서비스연결전환 각노드마다처리량을다르게설정 예 )Node 에작업처리량을 1:5:2 로설정해놓으면 Node 1 에서 1 개의작업을처리하고다음작업은 Node 2, 다음작업은 Node3 에서처리한다. 이후연속적인 3 개의작업은 Node 2 에서모두처리된다. 27

29 DDR (Data Dependent Routing) 에의한부하조절 여러노드에서공통된서비스를제공할경우데이터범위에따라노드간라우팅 (routing) 을할수있도록지정 예 ) 만약고객조회서비스를연령층별로각각다른 Node 에서제공한다면노드 1 에서는 0-19 세까지, 노드 2 에서는 세까지, 그리고그이외의연령은노드 3 에서처리될수있도록나눌수있다 DLM (Dynamic Load Management) 에의한부하조절. 특정 Node 에부하가집중되는경우 Tmax 동적부하조절방법에따라부하를분산하여전체시스템의처리량증대및처리시간단축 28

30 예 ) Node1,2 에서서비스를동일하게제공하고 Node1 에서비스요청이집중되는경우 Tmax 에서제공하는동적분산알고리즘에의해부하를분산하여처리한다 장애대책 Tmax 는시스템자원의높은가용성을보장하기위하여머신, 네트워크, 시스템, 서버프로세스등의장애발생시, 장애대책을통하여중단없는서비스를제공할수있다. 장애는하드웨어적인장애와소프트웨어적인장애로구분할수있으며각각의장애대책은다음과같다 하드웨어장애 (Machine or Network) Tmax 의시스템구성은각노드가서로다른노드를감시하는 Peer-to- Peer 방식이다. 따라서, 아무리많은노드라해도동일한조건하에서즉각적으로장애에대응할수있다. 이경우다음과같은 2 가지의장애대책이있다. 29

31 부하조절에의한장애대책 하나의서비스가여러노드에서제공되는경우에는한노드에서장애가발생하더라도다른노드에서계속적인서비스를제공한다. ( 클라이언트에서백업노드로재연결후서비스요청 ) After failures occur Service Back-up 에의한장애대책 Node 장애시다른 Node 에서미리준비된백업프로세스를동작시켜서비스를처리한다. 30

32 소프트웨어장애 ( 서버프로세스의비정상적종료 ) 프로그램내부적인버그에의해서혹은사용자의실수로인하여비정상적으로서버프로세스가다운됐을경우, 자동으로재시작될수있는기능을제공한다. 하지만 tms, cas, clh 와같은시스템프로세스들은제한없이무한으로 restart 되고이프로세스들이비정상적으로 31

33 종료되었을경우처리중이던서버프로세스도같이죽게될가능성이있기때문에주의해야한다 프로세스제어 Tmax 에서는세가지종류의 AP process 를지원한다 : TCS (Tmax Control Server) 전형적인업무처리프로세스로서호출자의요청을 Tmax Handler 로부터수신하여일을처리하고그결과를 Tmax 에서반환한후다음요청에대기한다. UCS (User Control Server) UCS 는호출자의요청이없어도능동적으로데이터를전달할수있는프로세스다. TCS 프로세스와동일하게호출자의요청을받아들여업무를처리할수도있다. 즉, UCS 는 TCS 와동일하게클라이언트의요청을처리하면서자발적이며능동적으로업무를처리할수있는기능이부여된프로세스이다. POD (Processing On Demand) Reliable Queue (RQ) POD 는업무처리가많치않은서버프로세스를클라이언트의요구가있을때만기동되어처리할수있도록하는방식이다 Tmax 의 RQ 는서비스수행도중장애등으로인하여요청내용이사라지는것을방지하여서비스가신뢰성있게처리되도록하는기능을제공한다. 많은시간을요하는작업이라든지반드시신뢰성이보장되어야하는업무의경우, 요청된업무를일단디스크에저장하고처리함으로써시스템장애혹은기타다른치명적인요인이발생한경우에도시스템복구후해당업무를정상적으로처리해주는방법이다. 32

34 tpenq() 함수의반환값을통하여요청된서비스가정확히디스크에저장되었는지확인할수있다. 큐잉업무처리는 queue manager(qmgr) 가독립적으로담당함으로써다른업무처리에는전혀영향을주지않는다. tpdeq() 함수를사용하여 Queue Manager 의처리결과에대한정상유무를확인할수있다 Domain Gateway Service 특징 여러노드를한도메인에서관리할때발생하는문제점해결 ( 전체노드관리의어려움, 노드간통신트래픽급증 ) 어느시스템에서든지요청된서비스처리가능 서비스방식 도메인간서비스처리 도메인간라우팅 도메인트랜잭션 33

35 종류 로컬게이트웨이프로세스가접속할리모트게이트웨이의종류 Tmax 위의그림은클라이언트가서비스요청시, 해당서비스가있는도메인으로부터그처리결과를응답받는것을보여준다. 이때, 양쪽도메인에서는게이트웨이를통해트랜잭션서비스나값에따라도메인간에라우팅이가능하게된다 RCA (Raw Client Agent) RCA 는 Raw Client Agent 로서 Tmax Client Library 를사용할수없는기존통신프로그램과 TCP/IP 소켓으로연결하여 Tmax System 에서제공하는서비스를이용할수있도록지원하는 Agent 다. 또한 RCA 는 Multi Thread 방식으로써 Thread Pool 을관리하여업무를처리하기때문에효율적이다. 기존 Tmax Client Library 처럼하나의 Client Library 는하나의 Client 프로그램에서만사용했으나 RCA 는 Multi Thread 방식으로작성되어한 Thread 가하나의 Tmax 클라이언트로동작한다. 34

36 구성 사용자의접속을제어하는 RCAL 사용자의로직과함께생성되는 RCAH 관리 tool 인 rcastat 와 rcakill 특징 멀티 Thread 방식 Thread Pool 에의한관리 멀티포트지원 RCA 는다양한형태의클라이언트를지원하기위해최대 32 개까지의포트지정가능 장애대책 RCAH/RCAL 에대한안정성보장 서비스방식 LOCAL 모드 REMODE 모드 35

37 RCA RCAH TCP/IP RCAL RCAH Tmax Domain CLIENT THREAD POOL <RCA 구조 > SCA (Simple Client Agent) SCA(Simple Client Agent) 는 Tmax Client Library 를사용할수없는기존의통신프로그램과 TCP/IP 통신으로연결하여 Tmax 시스템에서제공하는서비스를이용할수있도록지원하는 agent 로서 CLH Library 와링크되어 CLH 를구성한다. 클라이언트와접속및해제, 데이터의송 / 수신에해당하는네트웍상에서의처리부분은시스템내부적으로처리된다. 개발자는클라이언트와미리정의된포트번호를 Tmax 환경파일에명시하여클라이언트와접속할수있으며수신된데이터와송신할데이터를개발자의의도에맞도록수정및보완할수있다 (customizing) 구성 customizing routine CLH library 특징 멀티포트지원 다양한형태의클라이언트를지원하기위해최대 8 개까지의포트지정가능 직접적인데이터전달 36

38 SCA 모듈은 CLH 모듈과직접적인데이터의전달이가능 non-tmax 클라이언트 /Tmax 클라이언트동시수용가능 서비스방식 TCP/IP raw 소켓을이용하는방법 Tmax Client Library 를이용하는방법 직접적인데이터전달이가능하다. ATTACK TCP/IP CLH Cagent Library WITH- DRAWL MARCH CLIENT CLH APPLICATION <Cagent 를이용한서비스호출형태 > RDP (Real Data Processor) 실시간으로지속적으로변하는데이터를보다빠르게처리하기위해 CLH(Client Handler) 를경유하지않고 RDP 에서클라이언트에게직접적으로데이터를전달할수있다. 따라서 RDP 를이용하게되면 CLH 의부하를크게낮출수있기때문에 Tmax 시스템전체적인성능을높일수있다. RDP 는 UDP 데이터유형에대해서만지원하고있다 구성 UCS 서버프로세스형태 특징 UDP 유형데이터처리 CLH(Client Handler) 의부하를감소시킴 37

39 CLH 를경유하지않고클라이언트와 RDP 의직접적인데이터전송 윈도우제어 윈도우기반의클라이언트프로그램에서사용할수있는편리한라이브러리를소개한다. WinTmax 라이브러리와 tmaxmt 라이브러리두가지종류가있으며기본적으로쓰레드기반으로동작한다 WinTmax Library 윈도우기반의클라이언트라이브러리로서다중윈도우설정이가능하도록설계되어있다. WinTmax 라이브러리는내부적으로관리 Thread 와작업 Thread 로구성된다. 관리 Thread 는 Tmax 시스템과의접속, 데이터의송신, 작업 Thread 관리, Tmax 시스템과의접속해제의기능을수행한다. 작업 Thread 는데이터의수신과特定윈도우에데이터전달의기능을수행한다 구성 관리 Thread 작업 Thread 특징 다중윈도우설정가능 256 개까지의윈도우설정가능 38

40 동시다발적으로발생하는데이터처리에유용 관리쓰레드 작업쓰레드 Tmax 시스템접속데이터송신작업쓰레드관리 Tmax 시스템접속해제 데이터수신데이터전달 Tmax Domain <WinTmax 라이브러리구조및기능 > tmaxmt Library 이라이브러리는클라이언트프로그램의쓰레드화가가능하도록개발되어있다. 개발자는쓰레드를사용하여프로그램을만들어야하며각각의쓰레드에서지정된함수 (WinTmaxAcall(), WinTmaxAcall2()) 를사용하여데이터를송 / 수신할수있다. 각각의함수는내부적으로쓰레드를생성하며서비스를호출하며그결과를받아지정된윈도우나함수에데이터를전달할수있다. WinTmaxAcall 은지정된윈도우에데이터를 SendMessage 를사용하여전달한다. 반면 WinTmaxAcall2 는지정된콜백함수에데이터를전달한다 자원관리 (Resource Management) Application 관리 분산시스템은더확실한관리기능을요구 기존시스템에서는전체시스템에대한관리가이루어지지못함 전체의분산시스템에대한중앙 global monitoring 가능 이기종 Database 관리 단일애플리케이션에동종의데이터베이스혹은이기종의데이터베이스를함께사용 Tmax 는다양한종류의자원을애플리케이션차원에서통합 39

41 이름서비스 (Naming Service) 간단명료한서비스호출 서비스이름만호출하여해당하는서비스를제공받으므로프로그래밍이용이 위치투명성제공 클라이언트는서버의주소를알지못해도서비스명을통해정보를얻을수있음 시스템관리 (System Management) 정적시스템관리 사용자의환경에따라 Tmax 시스템을구성하는 Service, Server, Server Group, Node, Domain 등에대한전반적인시스템환경설정 동적시스템관리 Tmax 가동작중에도각구성요소를항목별로변경할수있는기능. Domain Node 서비스 timeout 시간, 트랜잭션 timeout 시간, 노드 (machine) live check 시간등을변경. message queue timeout value Server group 노드별 load 값, 부하조절방식등을변경. Server 40

42 max queue count, queuing 시서버 Start Count, 서버 restart count, 대서버개수, 서버우선순위등을변경. Service 서비스별우선순위, 서비스 timeout 시간등을변경 monitoring 및 Administration 기능 동적환경설정변경 각종자료출력 각종통계정보 ( 서버의트랜잭션처리량, 서비스별처리건수, 평균처리시간등 ) 보안기능 (Security) Tmax 에서는 UNIX 운영체제에서지원되는보안기능등을포함하여 4 단계보안기능을제공한다. 1 단계 : 파일접근통제 OS 에서제공하는읽기, 쓰기, 실행등의 Permission 을통제한다.( 유닉스시스템에의한보안 ) 41 1

43 2 단계 : 시스템접속인증 전체 Tmax 시스템 (Domain) 에대한단일암호를설정하고이암호를등록한클라이언트에한해서만 Tmax 시스템접속을허락 3 단계 : 사용자인증 Tmax 시스템에등록되어있는사용자 id 에한해서만인증을거쳐 Tmax 에서제공하는서비스사용을허락 4 단계 : 서비스접근인증 특별히보안이요구되는서비스에대하여, 권한이있는사용자에게만해당서비스를지원한다.(Tmax 4.0 부터지원함 ) 1.4 특징 X/Open, ISO-TP 등각종 DTP 국제표준 100% 준수 IPC 구현 : Stream I/O(Pipe) 방식 Protection, Multiplexing 의효율성지원 다양한메세지타입및통신유형제공 Integer, Long, Character 등의메세지타입지원 Synchronous 모드 ( 동기형 ), Asynchronous 모드 ( 비동기형 ), Conversational 모드 ( 대화형 ), 전달형등의통신유형제공 FDL(Field Definition Language) Structure Array 지원 장애대책 (Fault Tolerance) Peer-to-Peer 방식 H/W 및 S/W 장애대책 42

44 다양한장애방지기능지원 확장성 (Scalability) 클라이언트들의증가에도무리없는시스템활용성제공 CA(Client Agent) 를이용한 2-tier 모델에서 3-tier 모델로의효율적인전환 레거시시스템에대한다양한프로토콜을제공 WebT 를이용한웹환경으로서비스확대 유연성 (Flexibility) 다양한프로세스제어방식지원 사용환경별특성을고려한기능요구시추가기능지원 뛰어난성능 시스템자원효율적활용 단순, 명료한개발생산성향상을위한 API 제공 편리하며손쉬운시스템관리 (System Monitoring) 기능 다양한 H/W 플랫폼지원 IBM OS 390, 대부분의 UNIX 계열운영체제, Linux, Windows NT 등 PowerBuilder, Delphi, Visual C/C++, Visual Basic,.NET(C#, VB) 등의모든 4GL 지원 43

45 1.5 구조 Domain 구성도 TMM (Tmax Manager) Tmax system 의모든공유정보관리. CLL, CLH, TMS 및 AP 서버프로세스관리. CLL (Client Listener) 클라이언트와 Tmax 의연결을담당. CLH (Client Handler) 클라이언트와서버사이를중계하며, 서비스를제공하는업무처리서버에대한연결및관리. 복수서버에서비스요청. TMS (Transaction Management Server) 데이터베이스관리및분산트랜잭션처리담당. 44

46 데이터베이스관련시스템에서동작. RQS (Reliable Queue Server) Tmax system 의디스크큐를관리. GW (Gateway Process) 도메인간서비스처리. Tmadmin (Tmax Administrator) RACD (Remote Access Control Daemon) TCS (Tmax Control Server) UCS (User Control Server) Tmax 관련정보모니터링및환경파일변경등을관리. Tmax 가설치된모든도메인에대한원격통제. CLH 이요청에의해 business logic 을처리하고결과를반환. CLH 의요청에의해 business logic 을처리하고결과를반환하면서해당프로세스가 control 을유지함. TIP (Tmax Information Provider) 시스템환경정보, 통계정보확인, 시스템운용관리 (boot/down only) 다중시스템환경에서의 Domain 구성도 45

47 46

48 1.5.3 Tmax Client/Server 프로그램구조 IBM Host MVS(OS390) Unix / NT Server Server Application IMS or CICS AP Socket Region API T C P / I P V T A M X.25 SNA HOST Link OS (Unix, NT) TCP / IP Tmax Server DB Client Client Application Tmax Client Unix, Windows, DOS BP or FEP BP(FEP) Application Tmax Cagent Unix, Windows TCP / IP Client Client Application Unix, Windows, DOS TCP / IP TCP / IP Terminal or Client Client Application Unix, Windows, DOS TCP / IP 47

49 1.6 지원환경 항목 내용설명 프로토콜 Application API XATMI, TX Integrating API XA Network TCP/IP, X.25, SNA(LU 0/6.2) O/S Server All Unix, NT, Linux Client All Unix, Windows, MS-DOS, etc. 지원 Platform 서버용개발언어 클라이언트용개발언어 DBMS 지원 IBM OS 390, Unix, Linux 및 NT 를지원하는모든 H/W C, C++, COBOL C, C++ 및다양한 4GL(Power Builder, Delphi, Visual C/C++, Visual Basic,.NET(C#, VB) etc.) 에대한인터페이스지원 Oracle, Informix, Sybase and DB2 (UDB) 48

50 1.7 Tmax 설치를위한시스템사양 Server 요구사항 (SUN 기준 ) H / W Memory: Mbytes ~ 0.5 Mbytes / application Disk Tmax Server : 6.8 Mbytes(Bin K, Lib K, Inc - 83K) S / W IBM OS 390, UNIX, Linux, NT C 또는 C++, COBOL Compiler Network Protocol TCP/IP Client 요구사항 (Windows 95 기준 ) H / W Memory: 0.50 Mbytes Disk S / W Tmax Client : Mbytes (Include - 83K, DLL - 86K, Type Compiler - 108k) 단, Power Builder 의경우 203K(DLL, PBD) 추가 Linux, NT, Windows (95, 98, 2000), DOS 49

51 Unix Power Builder, Delphi, Visual Basic, Visual C++, C,.NET(C#, VB) Network Protocol TCP/IP 1.8 TP Monitor 도입시고려할점 항목내용 TP Monitor 의기본기능 - 프로세스관리 - 분산트랜잭션지원 - 부하분산 - C/S 간의다양한통신 - 장애대책 : 모든서버장애대응및방지기능 기 능 - 이기종 DBMS 지원 부가기능 - 보안기능 - 시스템관리 - Naming service - BP client 의 Multiplexing 기능 - 시스템특성에맞는보안기능 - Structure array 통신지원 50

52 - HOST 연계시대처능력 성능 평균처리시간또는시간당최대처리건수 Resource 사용도 장애대책 안정성 -Site 의장애발생빈도 - 장애발생시대응능력및걸리는시간 엔지니어기술수준 교육 & 기술지원 교육및 consulting 지원 - 시스템설계단계 Consulting - 어플리케이션개발전문교육 (O/S, Network, TP-Monitor) 시스템구축에따른 Risk 관리 신시스템구축시시행착오최소화 신기술을이용한시스템구축 구축대상업무이해도 C/S 개발툴지원 개발용드라이버제공 개발 및 운영 편리성 시스템통계자료 monitoring TP-Monitor 환경동적변경 시스템운영의편리성 제공되는 Report 기능 51

53 기능에대한만족도 사용자만족도 기술지원 / 교육에대한만족도 제품의우연성에대한만족도 호환성 국제표준준수여부 (X/Open DTP, OSI-TP) 특정 H/W 및 DBMS 와의독립성 자본금규모 업체규모 종업원수 매출액 향후성장성 기술이전 기타 Version up 계획 순수국내개발 (source programs 보유 ) 1.9 WebT 소개 WebT 란? Web 과 TP Monitor 의결합 Web 을통하여기존서비스및 Transaction 서비스를효율적으로제공하는 Class Library 52

54 1.9.2 필요성 웹을통한트랜잭션및동적데이터처리시많은프로세스유지필요. 데이터접근에따른서버부하가중 (DB Connection Overhead) DB 서버와 Web 서버분리운영시 Network OverHead 프로세스간 Data 공유문제 기능 Internet 을통한 Mission-Critical 서비스를제공 Java-Based Access 가능 (Applet, Servlet, JSP) 53

55 1.9.4 기존웹서버시스템구성 상기구성도는서버 2 대로구성된예제로서서버 1 대에서모든일을처리하는경우도동일하다. 웹서버와업무처리프로그램을다른머신으로분리하기가매우어려움 웹서버에부하가치중되고확장어려움 DB Connection 을요구시마다재설정함에따른 OverHead 54

56 DB 서버가분리된경우 DB 내용필요시 Network Traffic 가중 WebT 와 Tmax 를이용한시스템구성 상기구성도는서버 2 대로구성된예제로서서버 1 대에서모든일을처리하는경우도동일하다. 55

57 프로세스급증현상방지로안정적서비스제공 DB Connection 유지로연결 Overhead 방지 DB 서버와 Web 서버가분리된경우 Network Traffic 감소 56

58 1.9.6 기대효과 빠른서비스및안정적서비스제공 Global transaction 지원 DBMS access, process explosion, network traffic 문제해결. 자원의효율적활용서버간의부하조절. Backup System 구성용이업무처리서버또는 DB 서버등에대한장애대책 Servlet 을이용하여간편한개발환경제공 Multi-threading, Java API, SSI (Server-Side Include) 방식사용. 57

59 2 Tmax 응용프로그래밍 2.1 분산트랜잭션의표준 : X/Open DTP Model X/Open DTP 란? (Distributed Transaction Processing) X/Open 에서규정한분산트랜잭션표준 OSI 에서제시한 DTP 모델 OSI DTP 서비스에대한기능적분산 (decomposition ) 정의 기능구성요소들간의 API 및시스템인터페이스정의 58

60 2.1.2 X/Open DTP 모델구조도 기능적요소들 Application Program (AP) 사용자가작성한응용프로그램트랜잭션경계정의 Resource Manager (RM) 공유자원들을관리자원에대한접근방식제공 DBMS, ISAM-file access system Transaction Manager(TM) 전체시스템에대한트랜잭션관리 59

61 트랜잭션 id 정의, 전역트랜잭션의시작, 처리과정및 commit/rollback 제어 트랜잭션완료및장애시복구에대한책임 Communication Resource Manager (CRM) 같은 TM 영역내혹은서로다른 TM 영역에존재 분산응용프로그램들간의통신제어담당 Open System Interconnection -Transaction Processing (OSI -TP) 서로다른 TM 영역과의통신담당 인터페이스 (Interfaces) TM <-> RM Interface (XA) TM 이 RM 들의일을 global transaction 으로구성하고이에대한완료및실패시 recovery 를조정한다. 예 ) xa_start(), xa_end(), xa_open(), xa_close() AP -> TM Interface (TX) 응용프로그램의 global transaction 경계설정예 ) tx_begin(), tx_commit(), tx_rollback() AP <->CRM Interface (XATMI, TxRPC, CPI - C) DTP 통신을위한 API 정의 XATMI : 클라이언트 / 서버간메세지지향인터페이스예 ) tpcall(), tpacall(), tpconnect() etc TxRPC : 분산컴퓨팅환경의원격프로시져호출 CPI - C : IBM 의 CPI C 에기반한 peer-to-peer 대화식인터페이스 60

62 TM <-> CRM Interface (XA+) TM domain 을통한 global transaction 정보흐름지원 용어해설 트랜잭션 (Transaction) 하나의완전한일의단위 하나의트랜잭션에서여러가지일을포함 All or Nothing 트랜잭션의특성 Atomicity 하나의완전한일의단위이다. 완전히수행되는경우와수행이되지않는두가지경우만존재한다 Consistency 트랜잭션의성공적인수행결과를공유자원에갱신한다. 트랜잭션실패시공유자원을원래상태로유지한다. Isolation 트랜잭션의영향을받은공유자원의변동사항은트랜잭션 commit 전에는다른랜잭션에영향을미치지않는다. Durability 트랜잭션의 결과가 commit 된 후에는 어떠한 경우에도 보존된다. DTP (Distributed Transaction Processing) 61

63 하나의트랜잭션에여러 RM(Resource Manager) 가관여하여처리한다. Global Transactions 하나이상의 RM 들을하나의일의단위로취급한다. 시스템에서생성되는일은자동적으로 commit 되어야한다. Commit 트랜잭션의성공후그결과를영구적으로보존한다. Rollback 트랜잭션의실패나사용자임의에의해트랜잭션의결과를처리이전의원래상태로복구한다. X/Open TX Interface tx_begin(): 트랜잭션의시작을알림 tx_commit(): 트랜잭션이 commit 됨을알림 tx_rollback(): 트랜잭션이실패하면원래의상태로결과회복 2.2 Tmax API 함수개요및 Error 메세지 X/Open XATMI X/Open DTP 모델에서표준으로규정한 XATMI 인터페이스에대해서간략하게설명한다. XAMTI 인터페이스는애플리케이션프로그램과 TP Monitor 사이의통신방식의하나로사용된다. 각각의인터페이스에대한좀더자세한사용법에대해서는 Tmax 프로그래밍가이드 혹은 Tmax 참조매뉴얼 을참고하기바란다. 관련기능이름기능 Buffer 관리 tpalloc () 데이터를송수신할버퍼할당 62

64 tprealloc () 버퍼의크기변경 tpfree () 할당된버퍼해제 tptypes () 버퍼의크기와형식에대한정보제공 tpcall () 서비스를요청하고응답이올때까지대기 서비스및 요구 tpacall () 서비스를요청하고다른처리를하다가 tpgetrply() 호출시처리결과를수신 응답관련 tpcancel () 서비스요청대한응답취소 tpgetrply () tpacall() 호출에대한응답수신 tpconnect () 대화형모드에서메시지송 / 수신을위한연결 대화형모드 tpdiscon () 대화형모드서비스와연결을비정상적으로종료 tprecv () 대화형모드에서메세지수신 tpsend () 대화형모드에서메세지송신 서비스종료 tpreturn () 서비스요청에대한응답을클라이언트에게보내고서비스루틴종료 X/Open TX API TX API 는 X/Open DTP 에서규정한표준인터페이스로써애플리케이션프로그램과 TP Monitor 사이에트랜잭션에관해서통신하는방식을제공한다. 각각의인터페이스에대해서간략하게설명하며좀더자세한사용법에대해서는 Tmax 프로그래밍가이드 와 Tmax 참조매뉴얼 을참고하기바란다. 63

65 관련기능이름기능 tx_begin () 트랜잭션시작 tx_commit () 트랜잭션 commit ( 결과저장 ) tx_rollback () 트랜잭션을원상태로회복 (Rolls back ) tx_open () 리소스매니저 open ( 내부적으로작동 ) tx_close () 리소스매니저 closes ( 내부적으로작동 ) 트랜잭션 관리 tx_set_transa ction_timeou t () 트랜잭션이 종료되어야 할 시간제한 설정 tx_info () 전역 트랜잭션 (global transaction) 정보 반환 tx_set_comm it_return () 전역트랜잭션을인가할시점설정 tx_set_transa ction_control () 트랜잭션완료후자동으로다음트랜잭션시작 Tmax API Tmax ATMI 여기에서언급하는인터페이스는비표준인터페이스로서개발자의개발생산성향상을위해개발되었으며개발자에의해작성되는애플리케이션프로그램과 TP Monitor 사이의통신방식의하나로사용될수있다. 각각의인터페이스의기능에대해서간략하게설명하였으며자세한 64

66 사용법에대해서는 Tmax 프로그래밍가이드 와 Tmax 참조매뉴얼 을참고하기바란다. 관련기능이름기능 tpbroadcast () 비요청데이터를시스템에등록된클라이언트에게일방적으로전달 tpsetunsol () 비요청데이터를처리할함수지정 비요청처리 tpgetunsol () 비요청데이터를수신 tpsetunsol_fl ag () 비요청데이터수신플래그설정 tpchkunsol () 비요청데이터의도착을확인 에러관련 tpstrerror () 에러의내용을스트링형식으로출력 Userlog () 먼저에러를버퍼에기록 (Log) ulogsync () 디스크의 메모리 버퍼에 ulog 내용을 저장 UserLog () userlog() + ulogsync() gettperrno () Tmax 시스템호출시발생한 error number 반환 gettpurcode () 개발자가설정한 urcode 반환 65

67 관련기능이름기능 tperrordetail () Tmax 시스템호출시발생한에러에관한정보 tpgetpeer_ip addr () 연결된클라이언트의 IP 주소 Socket 정보 tpgetpeerna me () 연결된클라이언트의이름 tpgetsockna me () 연결된클라이언트의소켓이름 블록타임 아웃설정 tpset_timeou t () 블록타임아웃시간을설정 장애대책 tptobackup () 백업머신으로연결을맺음 연결함수 tpstart () tpend () Tmax 시스템과연결시작 Tmax 시스템과연결종료 tpenq () RQ 에 client 에서보낸 request 저장 RQ tpdeq () tpqstat () RQ 에있는데이터를불러들임 RQ 에저장된데이터통계를요구함 tpextsvcnam e () RQ 에저장된데이터에서서비스이름요구 66

68 관련기능이름기능 환경변수 tmaxreadenv () tpputenv () 파일에서환경변수를불러들임 환경변수설정 tpgetenv () 환경변수값을반환 WinTmaxSta rt () Tmax 시스템과연결 WinTmaxEn d () Tmax 시스템과연결해제 윈도우조작 WinTmaxSet Context () WinTmaxSe nd () 윈도우핸들지정 데이터송신 WinTmaxAc all () 윈도우용비동기함수 WinTmaxAc all2 () 데이터의수신을콜백함수로처리하는윈도우용비동기함수 기타 tpscmt () 환경파일의트랜잭션제어관련설정을무효화 tpgetlev () 트랜잭션모드확인 tpchkauth () 인증필요여부확인 67

69 관련기능이름기능 tpgprio () tpsprio () tpsleep () tp_sleep () tp_usleep () tpschedule () tpuschedule () tpsvrinit () tpsvrdone () 서비스요청우선순위확인 서비스요청우선순위설정 지정된시간내에메세지수신에대기 초단위로데이터수신에대기 microsecond 단위로데이터수신에대기 큐에쌓여있는업무를꺼내 UCS 에게처리를할당 큐에쌓여있는업무를꺼내 UCS 에게처리를할당 Tmax 서버프로세스초기화 Tmax 서버프로세스종료루틴 call tpsvctimeout () UCS 서버프로세스를 down tmadmin () 서비스호출의형태로시스템관리 FDL API FDL 은 Field Definition Language 의두자어로써비표준인터페이스이며개발자의개발생산성향상을위해개발되었다. FDL 은필드키라고불리는인덱스와데이터가함께관리되는 associative-typed data 에해당한다. 이와같은데이터는 Tmax 시스템에서제공하는버퍼의일종인필드키버퍼에실리며이버퍼를조작하기위한다음과같은함수를제공한다. 이문서에서는대표적인인터페이스에대한간단한설명을 68

70 제공하며좀더자세한내용에대해서는 Tmax 프로그래밍가이드 및 Tmax FDL 참조매뉴얼 을참고하기바란다. 관련기능이름기능 fbget_fldkey () 필드이름에대한필드키값을반환한다. 필드키 사상함수 fbget_fldnam e () fbget_fldno () 필드키의이름을반환한다. 필드키로부터필드번호를가져온다. fbget_fldtype () 필트키로부터가져온다.( 정수값반환 ) 필드형 (type) 을 fbget_strfldt ype () 필드키로부터형에대한포인터값을가져온다. 버퍼할당 함수 fbisfbuf () fbinit () 지정된 버퍼가 필드화되어 있는지 알아본다. 필트키버퍼로할당된메모리공간을초기화시킨다. fbcalcsize () 필드버퍼의크기를계산한다. fballoc () 필트키버퍼를동적으로할당한다. fbfree () 필드버퍼를해제한다. fbget_fbsize () 바이트단위로필드키버퍼크기를반환한다. 69

71 fbget_unused () fbget_used () 사용되지 않은 필드버퍼 공간을 확인한다. 사용중인필드키버퍼공간을바이트수단위로반환한다. fbrealloc () 버퍼크기를조절한다. 필드접근 fbput () 필드버퍼에필드키값을추가한다. 및 수정함수 fbinsert () fbchg_tu () 필드키와위치를지정하고필드버퍼에필드값을저장한다. 데이터를전송하기전에지정된필드버퍼를이동시킨다. fbdelete () 버퍼의필드데이터를삭제한다. fbdelall () 필드의모든값을삭제한다. fbdelall_tu () 필드키배열 (fieldkey[]) 에나열된모든필드의데이터를삭제한다. fbget () 버퍼에있는필드내용을찾는다. fbgetf () fbget_tu () fbnext_tu () 필드버퍼에있는지정된필드키의필드값을얻는다. 지정된위치에있는특정필드키의값을얻는다. 필드버퍼의특정필드키의필드값을순서대로얻는다. 70

72 fbgetalloc_tu () fbgetval_last _tu () fbgetlast_tu () 반환된데이터를저장하기위해다른버퍼를내부적으로할당하고그포인터만을버퍼에반환한다. 필드버퍼의특정필드키 occurrence 와최근데이터값을얻는다. 필드버퍼에지정된필드의최근 entry 데이터를얻는다. fbgetnth () 특정필드값을검색한다. fbfldcount () 특정버퍼에포함된필드의개수를반환한다. fbkeyoccur () 필드키에지정된필드번호를반환한다. fbispres () fbgetval () 요청한데이터가필드버퍼에존재하는지확인한다. 요청한데이터의길이와그위치의포인터를반환한다. fbgetvall_tu () 필드의실제값을 long 반환한다. 형식 (type) 으로 fbupdate () 지정된위치의필드버퍼안의필드키의필드값을갱신한다. fbgetlen () 필드버퍼안의지정한필드키에해당되는첫번째 occurrence 의값을반환한다. 변환함수 fbtypecvt () 데이터형식을변환한다. 71

73 fbputt () fbget_tut () fbgetalloc_tu t () 새로운데이터값과데이터형식을필드버퍼로덧붙여준다. 지정된위치의필드데이터를얻고필드키의형식을지정해준다. 반환된 데이터를 정의된 데이터 형식으로 변환하고 저장하기 위해 내부적으로다른버퍼를할당한다. fbgetvalt () 반환된값의포인터를반환한다. fbgetvali () integer 형식의필드데이터를반환한다. fbgetvals () String 형식의필드데이터를반환한다. fbgetvals_tu () 지정된위치의 string 형식의필드데이터를반환한다. fbgetntht () 변환된값을반환한다. fbchg_tut () 필드버퍼의특정시작지점에서필드키의값을바꾼다. 버퍼연산 함수 fbbufop () fbbufop_proj () 두필드버퍼의내용을비교, 복사, 이동, 변경한다. 필드키에해당되는버퍼를변경한다. I/O fbread () 표준입출력라이브러리와같이사용하는함수로써파일로부터필드버퍼를읽어들인다. 72

74 fbwrite () fbprint () fbfprint () 표준입출력라이브러리와같이사용하는함수로써파일에쓰기를한다. 표준입출력으로버퍼의내용을출력한다. 필드버퍼의가능한데이터를파일스트링으로출력한다. Errors fbstrerror () 필드버퍼조작시발생한에러의메세지를스트링형태로얻는다. getfberrno () 에러발생시에러번호를반환한다. fbmake_fldk ey () FDLFILE 에기록하지않지만새로운필드키를자동적으로생성한다. fbftos () 필드버퍼에저장된데이터를 C 구조체 (stname) 로옮긴다. 기타 fbstof () C 구조체로 저장된 데이터를 구조체 파일에 mapping 되는 FIELD 버퍼로 옮긴다. fbsnull () C 구조체의지정된필드키 occurrence 의구조체멤버변수와필드버퍼와 mapping 되는것이 NULL 인지의여부를확인. fbstelinit () 필드버퍼와 mapping 되는 C 구조체멤버변수를 NULL 로초기화시킨다. fbstinit () 필드버퍼와 mapping 되는 C 구조체를 NULL 로초기화시킨다. 73

75 2.2.4 에러메세지 X/Open DTP 에서제공하는인터페이스와 Tmax 시스템에서제공하는비표준인터페이스를사용하는경우에에러가발생하면해당상황에적절한에러값이 tperrno 라고불리는전역변수에설정된다. 따라서개발자는에러가발생한경우 tperrno 를확인하여적절한후속조치를취할수있다. 이문서에서는에러값에대한표준적인의미를전달하고자했다. 각에러값의의미는사용되는인터페이스에따라조금씩다른의미를가지게됨으로 Tmax 프로그래밍가이드 와 Tmax 참조매뉴얼 에서각각의인터페이스를참고하는것이정확한에러의의미를파악할수있다. tperrno : 에러상황이발생할경우에설정이되는전역변수 Error Message(tperrno) TPEBADDESC(2) TPEBLOCK(3) TPEINVAL(4) TPELIMIT(5) TPENOENT(6) TPEOS(7) TPEPROTO(9) TPESVCERR(10) Description 비동기식이나대화형타입에서잘못된디스크립터가사용됨 네트워크오류 적절하지않은인자입력 시스템에서 제공하는 각종 한계값을 벗어남 서비스가제공되지않음 시스템적문제로연결불가 프로토콜오류 응용프로그래밍의실패로인한 Tmax 시스템버퍼손상 74

76 TPESVCFAIL(11) 응용프로그램레벨서비스오류 TPESYSTEM(12) Tmax 내부오류 ( 로그메시지확인 ) TPETIME(13) TPETRAN(14) TPGOTSIG(15) TPEITYPE(17) TPEOTYPE(18) TPEEVENT(22) TPEMATCH(23) TPENOREADY(24) TPESECURITY(25) TPEQFULL(26) TPEQPURGE(27) TPECLOSE(28) TPESVRDOWN(29) TPEPRESVC(30) 처리시간초과 (BLOCKTIME) 트랜잭션실패로트랜잭션이취소됨 시그날발생 등록되지않은구조체형식이나필드키가사용됨 버퍼사용오류혹은버퍼형식오류 대화형모드에서이벤트발생 RQ 의 tpdeq() 호출시에해당서비스에대한결과가없음 서버프로세스가동작준비되지않음 보안오류 서버프로세스의큐대기시간초과 큐퍼지로인해큐에서제거됨 Tmax 시스템과연결해제 응용프로그램오류로서버프로세스다운됨 이전서비스처리도중에러발생 75

77 TPEMAXNO(31) 동시사용자수가한계값에도달 FDL 인터페이스에대한에러는전역변수 fberrno 에설정된다. 따라서개발자는에러가발생한경우 fberrno 를확인하여적절한후속조치를취할수있다. 이문서에서는에러값에대한표준적인의미를전달하고자했다. 각에러값의의미는사용되는인터페이스에따라조금씩다른의미를가지게됨으로 Tmax 프로그래밍가이드 와 Tmax FDL 참조매뉴얼 에서각각의인터페이스를참고함으로서정확한에러의의미를파악할수있다. fberror : 에러상황이발생할경우에설정이되는전역변수 Error Message(tperrno) FBEBADFB(3) FBEINVAL(4) FBELIMIT(5) FBENOENT(6) FBEOS(7) FBEBADFLD(8) FBEPROTO(9) FBENOSPACE(10) FBEMALLOC(11) FBESYSTEM(12) Description 적절하지않은버퍼사용 ( 필드키버퍼가아님 ) 적절하지않은인자값이사용됨 시스템에서제공하는한계값을벗어남 해당필드키가버퍼에존재하지않음 운영체제오류 적절하지않은필드키가사용됨 프로토콜에러 버퍼공간부족 메모리할당오류 시스템오류 76

78 FBETYPE(13) FBEMATCH(14) FBEBADSTRUCT(15) FBEMAXNO(19) 타입오류일치하는값이없음등록되지않은구조체가사용됨존재하지않은에러번호사용 2.3 Tmax 응용프로그램작성 Tmax 응용프로그램작성개요 클라이언트용프로그램 ( 사용자인터페이스담당 : Presentation logic) 서버용서비스루틴 ( 업무처리및 DB access logic) 클라이언트프로그램 사용자의입력 (input) 을받아들임. 서버에게서비스요청. 사용자에게서비스응답출력 (output) 서버프로그램 Tmax 에서제공하는 main() 과응용 (Application) 프로그래머가작성한서비스루틴 (Service Routine) 들로구성 main() 서버초기화와종료 (Service registration, resource open, etc.) 서비스응답및처리에필요한 buffer 할당과관리요구에해당되는서비스루틴수행 77

79 Service routines 사용자의요구처리.* 참고 : 서버는클라이언트로서동작할수있다. 서비스루틴내에서또다른서비스요청가능. 단, 다음과같은사항주의. 결과를받는버퍼를보내는버퍼로사용하는것은피한다. 서비스응답을받아야하는경우, 같은서버내의서비스를요청할수없음 ( 단, 두대이상의프로세스가기동되는경우에는가능 ) Client/Server 간통신유형 동기형모드 클라이언트가서비스호출후, blocking 상태로응답을기다림. 동기형 client/server 프로그램의동작원리는다음과같다. 78

80 비동기형모드 클라이언트는서비스요청후즉시다른일처리가능. 비동기형 client/server 프로그램의동작원리는다음과같다. 79

81 대화형모드 클라이언트 / 서버간 logical connection 을통해 control 을주고받으면서메시지송수신 control 을가진쪽이메시지송신 connection 이이루어졌을때 connection descriptpr 가반환된다. 메시지전달을확인하는데사용 80

82 대화형 Client/Server 프로그램동작원래는다음과같다 81

83 전달형모드 - 1 비즈니스로직을모듈화하며단계적인서비스처리 각모듈에대한사용효율을높임 문제분석및수정시에체계적인접근을가능하게한다. 동기형과비동기형을혼합하여사용할수있다. SERVICE A tpforward(b) SERVICE B tpforward(c) 호출자 SERVICE C tpreturn < 전달형 1 의처리구조 > 전달형모드 - 2 대외기관과같은기존의레거시시스템과연동 서버프로세스가블록킹되지않고지속적으로전달되는서비스요청을처리 레거시시스템에서전달되는응답을최종적으로호출자에게전달할수있는형태의서비스를지원 82

84 tpcall(a) SERVICE A tpforward(b) SERVICE B tpsavectx() 호출자 SERVIE C tpreturn usermain() tprelay(c) UCS 프로세스 < 전달형 2의처리구조 > Legacy System 83

85 전역트랜잭션처리 Transaction 의시작과끝을알림으로써트랜잭션처리. Client 에서의트랜잭션처리는다음과같다. 84

86 서버에서의트랜잭션처리는다음과같다. 85

87 2.3.3 FDL (Field Definition Language) 장점 일반적인구조체와는달리 Field Key Buffer 를사용하여원하는 정보의데이터만을조작하여처리할수있다 저장방식 사용 각각의 Field Key 에대한이름 (NAME, ADDR, TEL 등 ), 번호, 타입을필드버퍼파일 (XXX.f) 에기술한다. FDLC 를이용하여 XXX.f 를컴파일하면 XXX_fdl.h 로 Mapping 된파일을생성시킨다. 컴파일시 include 된 XXX_fdl.h 를참조하여사용자가선택한필드키와값만을조작할수있다. 2.4 Tmax API 함수들 Tmax 연결 / 해제 int tpstart(tpstart_t *tpinfo): Tmax 에연결. TPSTART_T 구조체의항목 86

88 char cltname[maxtident+2]; 자발적인메세지수신시사용되는사용자구별이름 MAXTIDENT = 16 (must be more than 15) char dompwd[max_passwd_length+2]; 시스템접속제어보안을위한암호 MAX_PASSWD_LENGTH = 16 char usrname[maxtident+2]; 사용자인증보안을위한사용자계정 char usrpwd[max_passwd_length+2]; usrname 에해당하는암호 long flags; 자발적인메세지유형과시스템접근방법결정 TPUNSOLIGN: 자발적인메세지무시 TPUNSOLPOLL: 자발적인메세지수신 TPUNSOL_HND: 자발적인메세지수신 에러가발생할시에는 -1 을반환 int tpend(): 응용프로그램과의연결을끊음. main() { if (tpstart ((TPSTART_T *) NULL ) == -1 ) { error routine; 메세지버퍼할당, 87

89 사용자입력이있는동안 { 입력을받아서비스함수호출응답을받음 메시지버퍼해제... if (tpend() == -1 ) { error routine; Buffer 관리 char *tpalloc(char *type, char *subtype, long size): 버퍼생성 버퍼영역의포인터를반환 type : 생성할버퍼의유형 STRING CARRAY X_OCTET STRUCT X_C_TYPE X_COMMON FIELD NULL( \0 ) 로끝나는문자열 (character array) 길이가지정된문자열 (ex: 그래픽비트맵파일 ), NULL 문자 ( \0 ) 도포함가능 CARRAY 와동일 C 언어의구조체 STRUCT 와동일 STRUCT 와동일하나구성요소가 confined to char, int, and long. 만가능 동적데이터타입, 선택적 field transmission. subtype: 생성할버퍼의하위유형 88

90 예 1) * 참고 : 하위유형은버퍼유형이 X_C_TYPE, STRUCT 이나 X_COMMON 일경우에만사용하며그외의경우에는 NULL 임. ( 하위유형은 C 언어에서선언된구조체의이름 ) size : 생성할버퍼의크기 struct account *accp;... accp = (struct account *)tpalloc ( STRUCT, account, sizeof(struct account)); 예 2) char *str_ptr; char *ptr1, *ptr2; str_ptr = tpalloc ( STRING, NULL, 25); ptr1 = str_ptr; ptr2 = str_ptr + 10; strcpy(ptr1, hello ); strcpy(ptr2, goodbye ); char *tprealloc(char *bufptr, long size): 버퍼크기조정 새롭게할당된버퍼에대한포인터를반환함 bufptr: 재조정이될버퍼에대한포인터 size: 새로운버퍼의크기예 1) struct account *accp;... 89

91 accp = (struct account *) tpalloc( STRUCT, account, sizeof(struct account));... accp = tprealloc (accp, sizeof(struct account) * len); 예 2) char *octet_ptr; char *ptr1, *ptr2;... octet_ptr = tpalloc( X_OCTET, NULL, 25);... octet_ptr = tprealloc (octet_ptr, 40); 90

92 void tpfree(char *bufptr): 할당된버퍼를 free 시킴 함수유형은 void 에러가없이수행이되면 tperrno 가 0으로설정됨 bufptr: free 시킬버퍼에대한포인터예 1) struct account *accp; accp = (struct account *) tpalloc( STRUCT, account, sizeof(struct account));... accp = tprealloc(accp, sizeof(struct account) * len); tpfree ((char *)accp); 예 2) char *str_ptr; char *ptr1, *ptr2; str_ptr = tpalloc( STRING, NULL, 25);... str_ptr = tprealloc(str_ptr, 40); tpfree (str_ptr) ; long tptypes(char *ptr, char *type, char *subtype) 이미생성한버퍼의유형과하위유형을알아냄 char *ptr : 생성한 buffer type 의포인터 char *type : 생성한버퍼의유형 char *subtype : 생성한버퍼의하위유형 RETURN 값 : 성공시버퍼크기또는실패시 1 반환예 ) 91

93 char type[9], subtype[17]; struct account *accp;... accp = (struct account *)tpalloc( STRUCT, account, sizeof(struct account));... len = tptypes ((char *)accp, type, subtype); 서비스요구및응답 int tpcall(char *service, char *sbufp, long slength, char **rbufpp, long *rlength, long flags) 동기적인발신과수신 ( 처리결과가반환될때까지대기함 ) service : 호출되는서비스이름 sbufp : 보내는버퍼의포인터 slength : 보내는버퍼의데이터길이 (CARRAY, X_OCTET 인경우 ) rbufpp : 응답버퍼의포인터주소 rlength : 응답버퍼의데이터길이 flags : 호출시사용되는옵션 TPNOTRAN : 트랜잭션모드에서는호출하지않음 TPNOCHANGE : 보내는버퍼타임은받는버퍼타입과같아야한다. TPNOBLOCK : 큐에메세지가없을때클라이언트는즉시에러메세지를반환한다. TPNOTIME : 시간제한없음 TPSIGRSTRT : signal catch 승인 92

94 예 ) transfp = (struct transf *) tpalloc( STRUCT, transf, sizeof(struct transf)); transfp->b_id = q_branchid; transfp->balance = 0.0; strcpy(transfp->errmsg, ); if (tpcall (svc_name, (char *)transfp, 0, (char **)&transf, &nrecv, TPNOFLAGS) == -1) { fprintf(stderr, Tpcall(%s) error->%s!, svc_name, tpstrerror(tperrno)); else tpfree((char *)transf); retc = -1; printf( Branch %ld balance is $.2f\n,transfp->b_id, transfp->balance); int tpacall(char *service, char *bufptr, long length, long flags) 클라이언트에서서비스를호출하고, 다른처리를하다가원하는시간에처리결과를수신 ( 에러가발생한경우에는 -1 을반환함 ) service : 호출하는서비스의이름 bufptr : 보내질버퍼 length : 요구된버퍼의데이터길이 (CARRAY, X_OCTET 인경우만사용 ) flags : 호출이되는모드를결정한다. 93

95 TPNOTRAN : 트랜잭션모드에서의호출이아님 TPNOREPLY : 응답을받지않고보내기만함 TPNOTIME : 시간제한 (time-out) 없음 TPSIGRSTRT : 시그날 catch 를허가함 TPBLOCK : 서비스나서버의이상유무응답을받음 TPNOBLOCK : 큐에메세지가없을때클라이언트는즉시에러메세지를반환한다 예 ) for (i = 0; i < NSIZE; i++) { audv->b_id = sitelist[i]; if ((cd[i] = tpacall( servicename, (char *)audv, sizeof(struct accnt), TPNOFLAGS)) == -1 ) { fprintf(stderr, %s: %s service request failed for site rep %ld\n, pgmname, sname, sitelist[i]); tpfree ((char *)audv); return (-1); int tpgetrply(int *handle, char **bufpp, long *length, long flags) handle : tpacall() 호출에서반환된핸들 bufpp : 응답버퍼포인터에대한주소 length : 응답버퍼의길이에대한포인터 flags : 옵션 TPNOTIME, TPSIGRSTRT, TPNOBLOCK 은위에서와같음 TPGETANY : 핸들을무시하고가능한모든응답을받아들임 TPNOCHANGE : 송신버퍼와수신버퍼의유형이일치해야함 94

96 예 ) if ((cd1 = tpacall( service1, buf1, 0, TPNOFLAGS)) == -1) error if ((cd2 = tpacall( server2, buf2, 0, TPNOFLAGS)) == -1) error if (tpgetrply(&cd1, &buf1, &buf1len, TPNOFLAGS) == -1) error if (tpgetrply (&cd2, &buf2, &buf2len, TPNOFLAGS) == -1) error int tpcancel(int handle) : tpacall() 에대한응답을취소함 handle : tpacall() 에서반환된핸들 Client 로부터온메시지가잘못되었을경우 ( 깨진메시지가오는경우 ) 처리하는방법은다음의세가지가있다. 중요한부분이깨졌기때문에더이상처리가불가능한경우 (E) CLH0200 magic number error from client(ipaddr): num1 num2 num3 num4 [CLH0546] 위와같은에러메시지를출력하며, 메시지를버리고클라이언트와의 connection 을끊어버린다. msg type field 가깨져버린경우 95

97 (E) 0209 internal error: invalid msgtype(num1) from client(ipaddr) [CLH0062] 위와같은에러메시지를출력하며, 메시지를버리고다음메시지를기다린다. 어느정도복구가가능한경우 (W) 0202 corrupt msg header from client(ipaddr): num1 [CLH0072] 위와같은메시지를출력하며, 깨진부분만을지워버린후메시지를처리하게된다. 처리과정에서에러가발생한경우에는 client 에게 TPEITYPE 혹은 TPEINVAL error 가리턴된다 대화형모드 int tpconnect(char *name, char *data, long length, long flags) 대화형모드로연결함 성공시에는연결핸들반환. 실패시에는 1 반환. name : 연결할대화형서비스의이름 data : 보내질버퍼에대한포인터 (NULL 인경우가많다 ) length : 보낼데이터버퍼의길이 flags : 선택 TPNOTRAN, TPNOTIME, TPSIGSTRT 는앞에서와같음 TPSENDONLY : 클라이언트에서데이터를보내기만함 예 ) TPRECVONLY : 클라이언트에서데이터를받기만함 { if ((cd = tpconnect ( ACCOUNT, NULL, 0, TPSENDONLY)) == -1) 96

98 error routine; int tpsend(int cd, char *data, long length, long flags, long *revent) 메세지보냄 cd : tpconnect() 함수를통해얻은연결핸들 data : 보낼버퍼 length : 보낼버퍼의길이 flags TPNOTIME, TPSIGSTRT, TPNOBLOCK : 앞에서와같음 TPRECVONLY : 데이터를보낸후받는모드로변경. revent : 이벤트값을반환. ( 에러값 ) 예 ) if (tpsend(cd, line, 0, TPRECVONLY, &revent) == -1) { tpend(); exit(1); 97

99 대화형서비스모드동작예 int tprecv(int cd, char **data, long *length, long flags, long *revent) 메세지받음. 실패시 -1 반환 ( 그외는성공적으로수행 ) cd : 연결핸들 data : 수신한버퍼에대한포인터 length : 데이터의길이에대한포인터 flags : 선택사항 TPNOCHANGE, TPNOTIME, TPSIGSTRT 는앞에서와같음 revent : 이벤트가발생한경우설정됨 ( 에러값 ) 예 ) if (tprecv(cd, &line, &len, TPNOCHANGE, &revent) { tx_rollback(); tpend(); exit(1); int tpdiscon(int cd) 연결해제 cd : 연결핸들 98

100 주의 tpdiscon() 는극히예외적인종료시사용 일반적으로대화형통신종료는 tpreturn() 예 ) if ((cd = tpconnect( ACCOUNT, NULL, 0, TPSENDONLY)) == -1) { error... if (error occurs) tpdiscon (cd); /* 예외상황발생시수행. */ 서비스종료 void tpreturn(int rval, int rcode, char *data, long len, long flags) 서비스요구에대한응답을클라이언트로보냄 rval : 서비스요청에대한결과 TPSUCCESS : 성공적수행 TPFAIL : 수행이제대로되지않음 (tperrno 가설정됨 ) TPEXIT : TPFAIL 과같은의미이며서버는종료됨 rcode : 응용프로그램에서지정된반환값으로설정이됨 data len flags : 응답버퍼에대한포인터 : 응답버퍼의길이 : 현재는사용되고있지않음 예 ) tpreturn (TPSUCCESS, 0, sdata, len, TPNOFLAGS); 99

101 2.4.6 비요청메세지 int tpbroadcast (char *lnid, char *usrname, char *cltname, char *data, long len,long flags) 비요청메세지를시스템에등록된클라이언트에게보냄 예 ) lnid, usrname, cltname : 이름 data : 보낼버퍼 len : 버퍼의크기 flags : 선택사항 TPNOBLOCK, TPNOTIME, TPSIGRSTRT : 앞에서와같음 if (tpbroadcast(null, NULL, NULL, (char *)msgdata, sizeof(struct kstrdata), 0) == -1) { printf( tpbroadcast failed tpstrerror = %s\n, tpstrerror(tperrno)); int tpsendtocli(clientid *id, char *data, long len, long flags) 비요청메세지를지정된클라이언트에게일방적으로보냄. id : 클라이언트구별자 data : 보낼버퍼 len : 버퍼의크기 flags : 선택사항 TPUDP, TPFLOWCONTROL : refer to Tmax Reference manual 예 ) if (tpsendtocli(cliid, data, (long *)len, TPUDP) == -1) { 100

102 printf( tpsendtocli failed, tperrno=%d\n, tperrno); return(-1) ; Unsolfunc * tpsetunsol(unsolfunc *func) 일방적인메세지를받을함수를지정 ( 서버에연결된후사용해야함.) func : function to perform messages 예 ) if (tpsetunsol(get_post) == -1){ printf( tpsetunsol failed, tpstrerror=%s\n, tpstrerror(tperrno)) ; tpfree((char *)sndbuf); tpend(); exit(1); int tpgetunsol(int type, char **data, long *len, long flags) 일방적인메세지수신. 예 ) type : 일방적인메세지유형 (UNSOL_TPBROADCAST, NSOL_TPSENDTOCLI) data : 받을버퍼 len : 버퍼크기 flag TPBLOCK : tpgetunsol 를호출하였을경우큐에메세지가들어올때까지기다림. TPNOBLOCK : 큐에메세지가없으면클라이언트가즉시에러메세지를반환한다. if (tpgetunsol(unsol_tpbroadcast, &data, &len, TPGETANY TPBLOCK) == -1) { printf( tpgetunsol failed, tperrno=%d\n, tperrno); 101

103 tpfree(data); exit(1); Error Log int userlog(const char *fmt,...) ULOG 디렉토리메세지를로깅함. printf() 와같은방식으로사용 int UserLog(const char *fmt,...) ULOG 디렉토리메세지를로깅함 printf() 와같은방식으로사용예 ) exec sql insert into ktran(no, name) values(:no, :name); if (sqlca.sqlcode!= 0){ userlog( oracle sqlerror=%s,sqlca.sqlerrm.sqlerrmc); tpreturn(tpfail, sqlca.sqlcode, NULL, 0, TPNOFLAGS); 102

104 char * tpstrerror(int err) 정수형의에러메세지를문자열로반환함. err : tperrno 예 ) if (tpcall( ASYNC, (char *)sndbuf, 0, (char **)&rcvbuf, &rcvlen, TPNOFLAGS)== -1) { printf( ASYNC service call failed=%s\n, tpstrerror(tperrno)); tpfree((char *)sndbuf); tpfree((char *)rcvbuf); tpend(); exit(1); Block Timeout int tpset_timeout(int timeout) block timeout 을설정. timeout : 변경할시간예 ) tpset_timeout (30); 소켓정보 int tpgetpeer_ipaddr(struct sockaddr *name, int *namelen) 클라이언트의 IP 주소정보확인. name : 주소가저장된구조체 namelen : name 구조체의크기 예 ) 103

105 if (tpgetpeer_ipaddr((struct sockaddr *)&name, &namelen)== - 1) { printf( tpgetpeer_ipaddr is failed\n ); tpreturn(tpfail, 0, NULL, 0, TPNOFLAGS); printf("address of client is %s\n", inet_ntoa(name.sin_addr)); int tpgetpeername(struct sockaddr *name, int *namelen) 클라이언트의이름확인. name : 주소가저장된구조체 namelen : 구조체의크기 예 ) if (tpgetpeername((struct sockaddr *)&name, &namelen) == - 1){ printf( tpgetpeername is failed\n ); tpreturn(tpfail, 0, NULL, 0, TPNOFLAGS); ptr_cli = gethostbyaddr((char *)&(name.sin_addr.s_addr), sizeof(name.sin_addr.s_addr), AF_INET); printf("name of client is %s\n", ptr_cli->h_name); int tpgetsockname(struct sockaddr *name, int *namelen) 클라이언트의소켓이름확인 name : 주소가저장된구조체 namelen : 구조체의크기 예 ) if (tpgetsockname(name, &namelen) == -1){ printf( tpgetsockname is failed\n ); 104

106 tpreturn(tpfail, 0, NULL, 0, TPNOFLAGS); 장애대책 int tptobackup() 환경변수에지정된백업머신으로연결 주의 : 환경변수가미리설정되어있어야함. TMAX_BACKUP_ADDR : 백업머신의 IP 주소 TMAX_BACKUP_PORT : 백업머신포트번호예 ) if (tpcall( SYNC, (char *)sndbuf, 0, (char **)&rcvbuf, &rcvlen, TPNOFLAGS) == -1) { printf( tpcall failed:sync service, tperrno=%d\n, tperrno); tpend(); if (tptobackup() == -1){ printf( tptobackup is failed\n ); tpfree((char *)sndbuf); tpfree((char *)rcvbuf); tpend(); exit(1) 트랜잭션관리 트랜잭션 자원을하나의일관된상태에서다른일관된상태로변화시키는일의단위 All or Nothing 105

107 한트랜잭션안의동작은모두수행되거나, 전혀수행이되지않는두가지경우만이존재 int tx_begin() : 전역트랜잭션시작 int tx_commit() : 전역트랜잭션을실행 (commit) int tx_rollback() : 전역트랜잭션취소 (rollback) tx_set_transaction_timeout(int timeout) timeout : 트랜잭션 timeout 을설정 ( 초 ) 예 ) tx_set_transaction_timeout(30) ; tx_begin( ); if ( (cd = tpacall( TOUPPER,(char *)sendbuf, 0, TPNOFLAGS)) == -1 ) { fprintf(stderr tpacall( TOUPPER,..): %s, tpstrerr(tperrno)); tx_rollback(); tpfree(sendbuf); tpend(); if ((tpcall( TOLOWER,(char *)sendbuf, 0, (char **)&sendbuf, &dlen,tpsigrstrt)) == -1 ) { fprintf(stderr tpcall( TOLOWER,..): %s, tpstrerr(tperrno)); tx_rollback(); tpfree(sendbuf); tpend(); if ((tpgetrply(&cd, (char **)&sendbuf, &clen, TPSIGRSTRT)) == -1) { fprintf(stderr tpgetrply: %s, tpstrerr(tperrno)); tx_rollback(); tpfree(sendbuf); tpend(); 106

108 tx_commit(); tpfree(sendbuf); tpend(); 서비스호출에의한시스템관리 시스템관리 호출자는 tmadmin 함수로구성된서비스를호출하여다음과같은업무를처리할수있다. 접속된特定클라이언트를연결해제 해당노드에연결되어있는모든클라이언트의정보획득 特定서버혹은서비스의큐에적체되어있는업무제거 特定서버를 boot/down 特定서버를 suspend/resume 환경파일의정보획득 즉 Tmax 시스템관리툴인 tmadmin 을사용하여처리할수있는업무를 tmadmin 함수로구성된서비스를이용하여호출자는서비스호출의형태로처리할수있는것이다 int tmadmin(int cmd, void *arg, int opt_flag, long flags): ADMIN(TPSVCINFO *rqst) { char cmd, *buf, *sndbuf; int len; long sndlen; if (rqst->len < 1) tpreturn(tpfail, 0, NULL, 0, 0); cmd = rqst->data[0]; switch (cmd) { 107

109 case TMADM_TMAX_INFO: len = tmaxinfo(&buf); break; case TMADM_SVC_STAT: len = svcstat(&buf); break; case TMADM_SPR_STAT: len = sprstat(&buf); break; default: len = -1; break; if (len < 0) tpreturn(tpfail, 0, NULL, 0, 0); 1)) == NULL) if ((sndbuf = (char *)tpalloc("string", NULL, len + tpreturn(tpfail, 0, NULL, 0, 0); memcpy(sndbuf, buf, len); sndlen = len; /* do not free it's static area free(buf); */ tpreturn(tpsuccess, 0, sndbuf, sndlen, 0); int tmaxinfo(char **buf) { int i, n, tmp, size, num_node; int major, minor, patch; int year, month, day; struct tmadm_tmax_info *info; size = sizeof(struct tmadm_tmax_info) + (MAX_NODE - 1) * sizeof (struct tmadm_node_summary); 108

110 info = (struct tmadm_tmax_info *) malloc(size); if (info == NULL) return -1; memset(info, 0x00, size); info->header.version = _TMADMIN_VERSION; info->header.size = size; n = tmadmin(tmadm_tmax_info, info, 0, 0); if (n < 0) return -1; 윈도우관련함수 特定윈도우를지정하여결과를해당윈도우에게송신할수있다. 따라서다중윈도우에의하여지속적으로변화하는데이터를화면에보여주는경우에유용하게사용될수있다. 윈도우관련라이브러리는 WinTmax 와 tmaxmt 두가지가있다. 윈도우프로그램에이용될수있으며이라이브러리를사용하는경우에있어서는메모리조작함수와윈도우관련함수만사용할수있다. 우선 WinTmax 라이브러리함수를소개한다 WinTmaxStart(TPSTART_T *tpinfo) Tmax 시스템과연결함수 이함수는 tpstart() 함수와동일한기능을수행한다 WinTmaxEnd(() Tmax 시스템과연결해제함수 이함수는 tpend() 함수와동일한기능을수행한다 WinTmaxSetContext(void *winhandle, unsigned int msgtype, int slot) 윈도우핸들지정 해당윈도우는메시지타입과함께라이브러리내부테이블에지정되며이함수에서반환되는구분자를이용하여데이터를수신한후에해당윈도우에게데이터를전송하게된다. 109

111 WinTmaxSend(int recvcontext, char *svc, char *data, long len, long flags) 데이터송신 Tmax 시스템에데이터를전송하며첫번째인자로사용된 recvcontext 는 WinTmaxSetContext() 함수에서반환되는구분자로서데이터를수신한후에이를해당윈도우에게전송하기위해사용된다. 데이터의전송은 SendMessage 를사용한다. 다음은 tmaxmt 라이브러리함수를소개한다 WinTmaxAcall(TPSTART_T *sinfo, HANDLE whandle, unsigned int msgtype, char *svc, char *sndbuf, int len, int flags); Tmax 시스템과연결 / 서비스호출 / 데이터수신 Tmax 시스템에데이터를전송하며첫번째인자로사용된 recvcontext 는 WinTmaxSetContext() 함수에서반환되는구분자로서데이터를수신한후에이를해당윈도우에게전송하기위해사용된다. 데이터의전송은 SendMessage 를사용한다 WinTmaxAcall2(TPSTART_T *sinfo, WinTmaxCallback fn, char *svc, char *sndbuf, int len, int flags); Tmax 시스템과연결 / 서비스호출 / 데이터수신 WinTmaxAcall 과같은기능의함수로서데이터의수신을윈도우에서하는것이아니라지정된콜백함수에서수행하게된다. WinTmax 라이브러리는데이터수신쓰레드가별도로있다. 따라서데이터를보내는송신쓰레드는데이터를보낸후다른일을수행할수있다. 반면 tmaxmt 라이브러리에서는데이터를송신한쓰레드가반드시데이터를수신해야한다. 또한 tmaxmt 라이브러리를사용하는경우에는 Tmax 시스템과의연결 / 해제부분을쓰레드내부적으로처리한다 기타 int tpsleep(int timeout) 지정된시간안에메세지가도착할때까지대기. timeout : 타임아웃시간 ( 초 ) 110

112 예 ) if (tpsleep(10) > 0){ if (tpgetrply( &cd, &rc_buf, &len, TPNOBLOCK) == -1) { printf( tpgetrply failed tperrno=%d, cd=%d \n, tperrno, cd); tpfree(sn_buf); tpfree(rc_buf); tpend(); exit(-1); 2.5 컴파일및실행 Tmax 응용프로그램컴파일환경 클라이언트컴파일환경 UNIX 환경파일 Tmax 접속에필요한환경변수설정.profile,.login,.cshrc TMAX_HOST_ADDR = Tmax 주소 (=IP Address) TMAX_HOST_PORT = 포트번호 (default : 8888) SDLFILE = sdlc 로컴파일된구조체파일 주의 : 장애에대비하여, TMAX_BACKUP_ADDR, TMAX_BACKUP_PORT 를선택적으로설정할수있음 tpstart() : 환경변수를읽음 클라이언트프로그램 111

113 서비스요청, 응답조작 개발자가프로그램개발 Tmax client library (libcli.a / libcli.so) 구조체헤더파일 (STRUCT 버퍼를사용한다면 ) STRUCT, X_C_TYPE, X_COMMON 버퍼사용시사용되지않더라도 dummy struct 를만들어야한다 통신시표준통신형으로바꾸기위해 sdlc 을사용해컴파일한다. 예 ) sdlc -c -i mystruct.s -> mystruct.sdl, mystruct_sdl.h 이와같이생성된 sdl 파일은클라이언트프로그램실행시에필요 클라이언트프로그램컴파일과정은다음과같다. 112

114 Client Makefile 아래 Makefile 을적절히변경하여클라이언트프로그램을컴파일한다 : 예 ) Makefile (solaris 용 ) TARGET = <clientname> APOBJS = $(TARGET).o TMAXLIBD = $(TMAXDIR)/lib TMAXLIBS = -lsocket -lnsl -lcli CFLAGS = -O I$(TMAXDIR) #.SUFFIXES :.c 113

115 .c.o: $(CC) $(CFLAGS) -c $< # # client compile # $(TARGET): $(APOBJS) $(CC) $(CFLAGS) -L$(TMAXLIBD) -o $(TARGET) $(APOBJS) $(TMAXLIBS) # clean: -rm -f *.o core $(TARGET) 클라이언트프로세스생성, 종료 확인사항 : UNIX 환경파일에 TMAXDIR, TMAX_HOST_ADDR, FDLFILE, TMAX_HOST_PORT, SDLFILE 지정확인 클라이언트프로세스는다른실행파일과같은방식으로실행종료 64bit Solaris 의경우 CFLAGS 에 -xarch = V9 를추가 ( 자세한내용은 8.2 Oracle 응용프로그램 참조 ) 서버컴파일환경 서버프로그램을컴파일하고실행하는데필요한파일들이다. UNIX 환경파일 Tmax system 이있는홈디렉토리지정.profile(bourne shell 용 ),.login(c shell 용 ),.cshrc(c shell 용 ),.bashrc(linux 용 ) 등에 TMAXDIR = Tmax 홈디렉토리지정 Tmax 시스템환경파일 114

116 Tmax 전체시스템구성에대한환경을설정 시스템구성요소 DOMAIN : 시스템자원정의 NODE : 머신에관계된내용정의 SVRGROUP : 데이터베이스관련된내용정의 SERVER : 서버에관련된사항정의 SERVICE : 서비스에관련된사항정의 시스템관리자가일반텍스트로환경파일구성. 환경파일컴파일 cfl 명령어를사용하여컴파일한다. cfl [ -i system configuration file] 예 ) cfl -i tmconfig.m 이때, default 로이진 tmconfig 파일이생성됨 gst : 환경파일을바탕으로테이블생성 tmboot : 환경파일을바탕으로시스템을로드시킴. 서버프로그램 서비스루틴프로그램 Tmax 에서 main() 제공 클라이언트요구처리루틴 구조체헤더파일 (STRUCT 버퍼를사용할경우 ) 클라이언트에서사용한것과같은 STRUCT 버퍼사용. 115

117 sdlc 로컴파일하면표준통신프로그램인 _sdl.c 생성. 예 ) sdlc c -i mystruct.s -> mystruct_sdl.c mystruct_sdl.h _sdl.c 파일은서버프로그램과함께컴파일되어야함. Tmax server library (libsvr.a 또는 libsvr.so) 서버프로그램컴파일과정은다음과같다 : 서버프로그램 Makefile 116

Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide

Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide Tmax Getting Started Guide : TMGS-0731-05-380 : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax Getting Started Guide Tmax 3.8 Tmax Getting Started Guide Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights

More information

Tmax COBOL Guide : TMCG : Tmax 3.8 : July 31, 2003 : Sep 20, 2003

Tmax COBOL Guide : TMCG : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax COBOL Guide : TMCG-0731-03-380 : Tmax 3.8 : July 31, 2003 : Sep 20, 2003 Tmax COBOL Guide Tmax 3.8 Tmax COBOL Guide Tmax COBOL Guide Tmax COBOL Guide 1. 1.1... 7 1.2 Sample file... 8 1.2.1 Sample

More information

Microsoft Word - Tmax Application Development Guide.doc

Microsoft Word - Tmax Application Development Guide.doc Tmax Application Development Guide Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved Copyright Notice Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

Microsoft Word - AnyLink Introduction v3.2.3.doc

Microsoft Word - AnyLink Introduction v3.2.3.doc Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. AnyLInk Copyright Notice Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. Tmax Soft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18 층우 )135-708 Restricted

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

기타자료.PDF

기타자료.PDF < > 1 1 2 1 21 1 22 2 221 2 222 3 223 4 3 5 31 5 311 (netting)5 312 (matching) 5 313 (leading) (lagging)6 314 6 32 6 321 7 322 8 323 13 324 19 325 20 326 20 327 20 33 21 331 (ALM)21 332 VaR(Value at Risk)

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 1 목포해양대해양컴퓨터공학과 UDP 소켓 네트워크프로그램설계 4 장 2 목포해양대해양컴퓨터공학과 목차 제 4장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송신및수신 4.4 UDP 소켓의연결 3 목포해양대해양컴퓨터공학과 UDP 소켓의특징 UDP 소켓의특성 신뢰할수없는데이터전송방식 목적지에정확하게전송된다는보장이없음.

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

Tmax FDL Reference Manual : TMFR : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003

Tmax FDL Reference Manual : TMFR : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003 Tmax FDL Reference Manual : TMFR-0702-08-380 : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003 Tmax FDL Reference Manual Tmax 3.8 1 2 Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights Reserved.,,, Tmax soft.,,,.....

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 getaddrinfo() 를활용한주소 범용 (Generic) 코드 주소범용 (Generic) 코드란? 주소버전

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Backup Exec

Backup Exec (sjin.kim@veritas.com) www.veritas veritas.co..co.kr ? 24 X 7 X 365 Global Data Access.. 100% Storage Used Terabytes 9 8 7 6 5 4 3 2 1 0 2000 2001 2002 2003 IDC (TB) 93%. 199693,000 TB 2000831,000 TB.

More information

OZ-LMS TM OZ-LMS 2008 OZ-LMS 2006 OZ-LMS Lite Best IT Serviece Provider OZNET KOREA Management Philosophy & Vision Introduction OZNETKOREA IT Mission Core Values KH IT ERP Web Solution IT SW 2000 4 3 508-2

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

SMB_ICMP_UDP(huichang).PDF

SMB_ICMP_UDP(huichang).PDF SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

BSC Discussion 1

BSC Discussion 1 Copyright 2006 by Human Consulting Group INC. All Rights Reserved. No Part of This Publication May Be Reproduced, Stored in a Retrieval System, or Transmitted in Any Form or by Any Means Electronic, Mechanical,

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Business Agility () Dynamic ebusiness, RTE (Real-Time Enterprise) IT Web Services c c WE-SDS (Web Services Enabled SDS) SDS SDS Service-riented Architecture Web Services ( ) ( ) ( ) / c IT / Service- Service-

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 www.vmon.vsystems.co.kr Vmon 소개자료 Ⅰ. EMS 란? Ⅱ. Vmon 소개 Ⅲ. Vmon 의도입효과 Ⅰ. EMS 란? - EMS 의정의 - EMS 의필요성 : IT 환경의변화 Ⅱ. Vmon 소개 - Vmon 개요 - Vmon 제품구성 - Vmon Solutions - Vmon Services Ⅲ. Vmon 의도입효과 Ⅰ. EMS 란?

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

<49534F20323030303020C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D7204954534D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

<49534F20323030303020C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D7204954534D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770> ISO 20000 인증 사후심사 컨설팅 및 ITSM 시스템 고도화를 위한 제 안 요 청 서 2008. 6. 한 국 학 술 진 흥 재 단 이 자료는 한국학술진흥재단 제안서 작성이외의 목적으로 복제, 전달 및 사용을 금함 목 차 Ⅰ. 사업개요 1 1. 사업명 1 2. 추진배경 1 3. 목적 1 4. 사업내용 2 5. 기대효과 2 Ⅱ. 사업추진계획 4 1. 추진체계

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

Sena Technologies, Inc. HelloDevice Super 1.1.0

Sena Technologies, Inc. HelloDevice Super 1.1.0 HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision

More information

untitled

untitled 3 IBM WebSphere User Conference ESB (e-mail : ljm@kr.ibm.com) Infrastructure Solution, IGS 2005. 9.13 ESB 를통한어플리케이션통합구축 2 IT 40%. IT,,.,, (Real Time Enterprise), End to End Access Processes bounded by

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

놀이동산미아찾기시스템

놀이동산미아찾기시스템 TinyOS를이용한 놀이동산미아찾기시스템 윤정호 (mo0o1234@nate.com) 김영익 (youngicks7@daum.net) 김동익 (dongikkim@naver.com) 1 목차 1. 프로젝트개요 2. 전체시스템구성도 3. Tool & Language 4. 데이터흐름도 5. Graphic User Interface 6. 개선해야할사항 2 프로젝트개요

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Outline Network Network 구조 Source-to-Destination 간 packet 전달과정 Packet Capturing Packet Capture 의원리 Data Link Layer 의동작 Wired LAN Environment

More information

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

More information

final_thesis

final_thesis CORBA/SNMP DPNM Lab. POSTECH email : ymkang@postech.ac.kr Motivation CORBA/SNMP CORBA/SNMP 2 Motivation CMIP, SNMP and CORBA high cost, low efficiency, complexity 3 Goal (Information Model) (Operation)

More information

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint APUE(Intro).ppt 컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버

More information

歯이시홍).PDF

歯이시홍).PDF cwseo@netsgo.com Si-Hong Lee duckling@sktelecom.com SK Telecom Platform - 1 - 1. Digital AMPS CDMA (IS-95 A/B) CDMA (cdma2000-1x) IMT-2000 (IS-95 C) ( ) ( ) ( ) ( ) - 2 - 2. QoS Market QoS Coverage C/D

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt 13 장소켓을이용한통신 (2) 소켓을이용한통신 (2) 함수 - recvfrom - sendto - uname - gethostname - gethostbyname - gethostbyaddr 1 1. 서론 소켓을사용하여비연결형모델로통신을하기위한함수와그외의함수 함수 의미 recvfrom 비연결형모델에서소켓을통해메시지를수신한다. sendto 비연결형모델에서소켓을통해메시지를송신한다.

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA Spotlight on Oracle V10.x DELL SOFTWARE KOREA 2016-11-15 Spotlight on Oracle 목차 1. 시스템요구사항... 2 1.1 지원하는데이터베이스...2 1.2 사용자설치홖경...2 2. 프로그램설치... 3 2.1 설치프로그램실행...3 2.2 라이선스사용관련내용확인및사용동의...3 2.3 프로그램설치경로지정...4

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

Tmax

Tmax Tmax JTmaxServer User Guide Tmax v5.0 SP1 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information