2002 12 년월 - itfind1990 , ,년대후반부터이동전화기기 전송...

136
-1- 2002 12 신뢰성보장 이동분산처리 기술개발 Reliable Mobile Distributed Computing Technology Development

Upload: others

Post on 06-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 1 -

년 월2002 12

신뢰성보장 이동분산처리 기술개발

Reliable Mobile Distributed Computing Technology

Development

Page 2: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 2 -

인 사 말 씀

년대 후반부터 무선통신 기술과 결합된 컴퓨터 통신기술의 발달과 휴대용 정보 통신1990

기기의 보급으로 모바일 인터넷 사용자가 급속히 증가하게 되었습니다 이에 주로 개인 정.

보 관리 에 사용되던 휴대용 서브(Personal Information Management : PIM) PC, PDA,

노트북 휴대 전화기 등과 같은 휴대형 컴퓨터 기반의 모바일 클라이언트를 지원하는 새로,

운 기업 응용들에 대한 요구가 점차 높아지고 있습니다 결과적으로 이러한 요구에 의해서.

모바일 클라이언트에서 기업 정보를 접근할 수 있도록 모바일클라이언트들을 기업 시스IT

템의 범주에 포함시키는 모바일 기업 응용의 필요성이 대두되었습니다.

본 과제는 모바일 기업 응용 개발에 필요한 핵심 기술인 메시징 기술과 데이터 동기화 기술

을 년에 거쳐 개발하였습니다 차년도에는 해당 기술의 동향 및 개략 설계 그리고 기초적2 . 1

인 시제품을 개발하였고 차년도에는 모바일 환경에서 자주 발생되는 여러 가지 고장을 대, 2

처하는 신뢰성 보장 메시징 시스템 와 다양한 기업 응용의 데이터 동기화MoIM-Message

를 지원하는 시스템으로 를 개발하였습니다 개발된 시스템과 개발 기술은 관련MoIM-Sync .

산업계에서 유용하게 활용되리라 예상됩니다.

끝으로 연구 개발을 수행할 수 있도록 지원해주신 정보통신부에 깊은 감사를 드리며 참여,

연구원 여러분들의 노고를 치하합니다.

년 월 일2002 12 31

한국전자통신연구원 원장 오길록

Page 3: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 3 -

제 출 문

정보통신부장관 귀하

본 보고서를 신뢰성보장 이동분산처리 기술개발 의 최종연구개발결과보고서로 제출합니다" " .

년 월 일2002 12 31

주관연구기관 : 한국전자통신연구원

연구 책임자 : 책임연구원 함호상

참여 연구원 : 책임연구원 남궁한 박남식,

선임연구원 정인철 이강우 문애경, ,

연 구 원 서영호 김희정 강태근 손강민, , ,

계약직연구원 손승범

공동연구기관 : 이수시스템 주( )

연구 책임자 : 책임연구원 홍승권

참여 연구원 : 선임연구원 이강인 장민수 황태진, ,

연 구 원 장윤상 최범수 최운영 이한일, , ,

권영호 김현중 고영은, ,

Page 4: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 4 -

공동연구기관 : 이처닷컴 주( )

연구 책임자 : 선임연구원 장우식

참여 연구원 : 책임연구원 김종환 김정식,

연 구 원 황영일 이혜진 양상태, ,

공동연구기관 : 포스데이타 주( )

연구 책임자 : 책임연구원 이종욱

참여 연구원 : 책임연구원 주관정 박정선,

선임연구원 박난경

연 구 원 지재덕 김진 이미영 이수진, , ,

박근렬 이윤섭,

Page 5: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 5 -

요 약 문

제목1.

신뢰성보장 이동분산처리 기술개발

연구개발의 목적 및 중요성2.

가 목표.

모바일 인터넷 환경에서 사용자의 작업을 정확하고 일관성 있게 수행하도록 지원하는 미들

웨어 개발을 목표로 한다.

모바일 인터넷 메시징 미들웨어 개발(MoIM-Message)●

모바일 인터넷 동기화 미들웨어 개발(MoIM-Sync)●

나 중요성.

년대 후반부터 이동 전화기기 전송 전송망 기술의 획기적인 발달로 단순한 음성전달1990 , ,

분야에서 사용되었던 전화기와 전화망이 데이터 전달기기 및 전달망으로서 중요한 역할을

하고 있으며 그 사용량과 중요성이 폭발적으로 증가하고 있다 또한 컴퓨터 하드웨어기술의.

비약적인 발달과 결과물인 휴대용 정보처리 기기가 이동통신기술과 결합하여 이동정보 단말

기로서 점차 보급되고 있으며 그 수요도 크게 증가되고 있다.

Page 6: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 6 -

정보통신 환경이 음성에서 데이터 중심으로 바뀌고 이동정보 단말기의 활발한 보급으로 이

동환경이 보편화되어 감에 따라 이동환경에서의 데이터 처리가 필요하다 따라서 이러한 기.

술이 통합된 이동분산처리 기술은 인터넷 기반 이동 인터넷 환경에서 핵심 기술로 향후 이

동분산처리 환경에서 각각 사용되거나 동시에 사용될 것이므로 하나로 통합되거나 분리될

수 있다 또한 이 기술은 소프트웨어 업체 경쟁력의 기본 요소가 될 것으로 예상되므로 필.

수적으로 보유하여야 할 기술이다.

연구개발의 내용 및 범위3.

신뢰성보장 이동분산처리 기술은 가지 핵심기술 모바일 인터넷 메시징 미들웨어2 ,

기술과 모바일 인터넷 동기화 미들웨어 기술로 구성 되어(MoIM-Message) (MoIM-Sync)

있다 는 네트워크 접속여부와 무관하게 모바일 클라이언트 응용 서비스간. MoIM-Message

의 메시지의 전달을 보장해 주는 메시징 시스템으로 소프트웨어 컴포넌트나 응용프로그램

사이의 통신방법을 제공한다 중앙 집중형인 방식을 사용하는 모바일 메시징. Hub & Spoke

미들웨어 기술은 중앙에 메시지 브로커 역할을 하는 서버를 두고 각 시스템이 클라이언트

형태로 중앙 서버와 연결되어 시스템 간 메시징 교환이 이루어지는 시스템이다.

는 이라는 표준화된 데이터 동기MoIM-Sync SyncML(Synchronization Markup Language)

화 프로토콜을 기반으로 한 데이터 동기화 프레임워크를 제공하는 동기화 미들웨어로서 모

바일 기업 응용을 작성하는 응용프로그래머에게 데이터 동기화를 위한 추상화 된 인터페이

스를 제공할 뿐만 아니라 사용중인 다양한 동기화 시스템들에 대한 연동을 용이하게 해주,

기 위한 시스템이다.

Page 7: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 7 -

차년도는 요구사항을 분석 시스템 정의를 상호 보완적으로 수행하고 설계 구현 및 시험1 , ,

은 독자적으로 진행한 다음 모바일 인터넷 미들웨어 완성을 위한 통합시험으로 모바일 인터

넷 미들웨어 시제품 을 개발하였다 차년도는 차년도에 개발한 모바일 인터넷 미들웨1.0( ) . 2 1

어 시제품 을 기반으로 모바일 인터넷 미들웨어 상용시제품 을 위한 확장 기능 정1.0( ) 2.0 ( )

의 및 설계 구현 후 안정화 시험을 통해 상용 시제품을 개발하였다, .

연구개발결과4.

개발된 모바일 인터넷 메시징 미들웨어 기술과 모바일 인터넷 동기화 미들웨어 기술의 각

시스템의 기능 및 특징은 다음과 같다.

의 서비스 기능으로는 와 두 가지 형MoIM-Message Point-to-Point Publish/Subscribe●

태의 메시지 모델 와 참여하는 그룹 멤버들 간의 데이터 일관성을 보장하는 그룹통신의API

멤버쉽 서비스 및 그룹 메시징 서비스를 제공한다.

Page 8: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 8 -

국제 표준인 기반으로 구현된 는 업계 최신JMS(Java Message Service) MoIM-Message

표준을 준수하므로 타 시스템과의 연동성이 뛰어나 기업간(Business to Business: B2B)

통합 환경 및 기업 응용 통합 구축을 위한 메시(Enterprise Application Integration: EAI)

징 서버 솔루션으로 활용될 수 있도록 개발되었다 뿐만 아니라 와 같은 이. , M-Commerce

동성과 신뢰성을 요구하는 응용 서비스를 위한 통신 모듈 구현에 활용이 가능하며 워크플로

우 그룹 회의 전자상거래 등의 신뢰성을 요구하는 서비스 분야에 활용 될 수 있다, , .

의 주요 구성요소로 엔진과 가 있다 엔진은MoIM-Sync SyncML SyncStore . SyncML●

동기 표준인 을 구현한 엔진이고 는 자바 환경에서 동기 응용을 보다SyncML , SyncStore

용이하게 작성할 수 있는 프레임워크이다 모바일 기업 응용을 작성하는 응용프로그래머에.

게 데이터 동기화를 위한 추상화된 인터페이스를 제공할 뿐만 아니라 사용중인 다양한 동,

기화 시스템들에 대한 연동을 용이하게 한다.

활용에 대한 건의5.

본 연구에서 개발된 모바일 인터넷 미들웨어 는 차세대 인터넷 환경에서 응용 소(MoIM 2.0)

프트웨어 개발도구와 이동정보 단말기의 내장형 소프트웨어로 활용 가능하다 차세대 인터.

넷 환경에서는 모든 이동정보 단말기기가 단순한 음성만 주고받는 단계가 아닌 데이터 처리

가 기본이 될 것이므로 데이터 동기화 메시지 전달 사용 환경에서 간단한 오류복구는 모, ,

든 통신 서비스에서 필수적이다.

Page 9: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 9 -

그러므로 이 기술의 결과물을 이용하여 이동정보단말기기 및 소프트웨어 업체의 경쟁력 도,

구로 활용될 수 있는 저변확대가 요망된다.

기대효과6.

모바일 인터넷이 보급 일반화되면서 개인 및 기업차원에서 이를 활용한 서비스에 대한 새,

로운 수요가 창출되고 있다 그러므로 모바일 인터넷 미들웨어의 핵심요소인 모바일 인터넷.

메시징 미들웨어와 모바일 인터넷 동기화 미들웨어가 산업적 측면에서 수요가 증대될 것으

로 기대된다 모바일 인터넷 기술은 년 세계 시장의 규모는 억 달러. 2002 7.57 (IDC, 2000

년 년 억 달러로 추정되나 기술 수준의 격차가 크지 않고 현재 본격적으로 보급되), 2004 75

는 를 기반으로 방대한 시장이 예상되므로 조속한 기술개발이 요구되고 있으며PDA IBM,

등이 다양한 형태로 이동정보단말기를 판매 중이고 그 사용량과 중요성이 폭Compac, HP

발적으로 증가하고 있다.

모바일 인터넷 메시징 미들웨어는 업계 최신 표준을 준수하여 타 시스템과의 연동이 뛰어나

상대적으로 시장 규모가 큰 통합 환경 및 구축을 위한 분야에도 활용될 수 있으B2B EAI

며 모바일 인터넷 동기화 미들웨어는 모바일 기업 응용 구축 기업 응용간의 데이터 통합, , ,

웹 시스템 데이터베이스 동기화 서비스 분야에 활용이 가능하다PIMS , .

Page 10: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 10 -

본 연구에서 개발한 모바일 인터넷 미들웨어 은 모바일 인터넷 환경의 핵심기술(MoIM 2.0)

로 활용될 수 있도록 업체 기술이전 및 상용화를 추진하고 차세대 인터넷 서버 기술개발" "

과제의 응용 서비스를 위한 하부기술을 제공함으로써 향후 차세대 인터넷 서버의 고 부가가

치 창출에 기여코자 한다.

Page 11: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 11 -

SUMMARY

I. TITLE

Reliable Mobile Distributed Computing Technology Development

. THE OBJECTIVES & IMPORTANCEⅡ

1. PROJECT OBJECTIVES

The objective of this project is to develop a middleware which can support users'

work with consistency and correctness in the mobile Internet environment.

- To develop Mobile Internet Messaging Middleware (MoIM-Message)

- To develop Mobile Internet Synchronization Middleware (MoIM-Sync)

2. PROJECT IMPORTANCE

Due to rapid technological progress, telephone devices and its networks which had

been mainly used as means of voice delivery has emerged into taking an important

role in the digital data network. Recent development of computer hardware and its

technologies has enabled portable information processing devices to converge into

mobile communication technologies, which propelled the promotion of wide spread

use of mobile devices.

Page 12: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 12 -

The influence of digital data networks and mobile devices has also made us to

expect the advent of ubiquitous mobile network.

Under the mobile Internet environment, mobile distributed computing technologies

are expected to be the core of the related technologies, which consists of two

middlewares as we proposed earlier. Furthermore, we expect that these

technologies would be essential to such companies that are going to develop

softwares running over mobile internet environment.

. THE CONTENTS AND SCOPE OF THE STUDYⅢ

Reliable Mobile Distributed Computing Technology Development proposes two core

technologies which are Mobile Internet Messaging Middleware(MoIM-Message) and

Mobile Internet Synchronization Middleware(MoIM-Sync). MoIM-Message is

composed of a messaging server and message clients. Based on the centralized Hub

& Spoke model, the messaging server is a message broker located in the middle of

the configuration, and the message clients that are located around it exchange

messages via the message broker.

Page 13: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 13 -

MoIM-Sync is a data synchronization middleware that adapted the standard data

synchronization protocol, SyncML, so that it provides synchronization framework,

and abstract interfaces to application developers, and makes it easier to

interconnect existing various synchronization systems as well. MoIM-Message is a

messaging middleware that reliably ensures the delivery of messages between

mobile clients regardless of network connection, which can also be utilized as a

communication module of large software systems.

In the first year, ETRI and joint corporate carried out requirements analysis, and

system design together, and implemented the designed system separately, and then

performed the integration together. The second year, the prototype developed in

the first year, Mobile Internet Middleware 1.0, was extended into 2.0 through

stability consideration and performance evaluation. The extended system design was

carried out together, and the implementation and the evaluation were separately.

Page 14: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 14 -

. RESULTSⅣ

The main features of MoIM-Message and MoIM-Sync are as the following.

- MoIM-Message provides two messaging model, point-to-point and

publish-and-subscriber, and their APIs, and group communication service, such as

membership service and group messaging service, additionally. Designed and

developed on the basis of J2EE standard, MoIM-Message has high compatibility so

that it can easily be connected to other messaging systems, which enables its

applications to be utilized for integration of B2B environments or construction of

EAI solutions. Moreover, MoIM-Message can be suitable for developing lower

communication modules from applications working under M-Commerce environment

which requires mobility and reliability, and other service applications such as

workflow, group conference, or E-commerce as well.

- MoIM-Sync has SyncML engine and SyncStore as its key functions. SyncML

engine is implemented based upon SyncML, a standard for data synchronization, and

SyncStore is a framework that allows the easy development of synchronization

applications in Java. MoIM-Sync provides abstract interfaces to be used to develop

mobile enterprise applications, and enables easy interconnection of existing

synchronization systems.

Page 15: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 15 -

. SUGGESTIONSⅤ

The result of this study (MoIM 2.0) can be utilized as application development

system in the next generation Internet, and embedded software inside mobile

information devices as well.

Since most of mobile devices exchange message, and voice in digital format under

the next generation Internet, data synchronization, messaging, and respective error

recovery will be prerequisite features.

. EXPECTED RESULTSⅥ

As mobile internet has become wide spread, demands for applications in actively

utilizing this environment.

As a result, the importance and need for Mobile Internet Middleware, which are

composed of MoIM-Message and MoIM-Sync in this project, is expected to grow.

World wide market volume for Mobile Internet technologies is estimated to be

approximately 75 billion dollars in 2002(IDC, in 2000), but when considering small

technological differences and increase of PDA supply rate, rapid development of

applications and related technologies are expected.

Page 16: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 16 -

MoIM-Message has high compatibility with other systems due to designed and

developed on the basis of J2EE standard, which enables its applications to be

utilized for integration of B2B environments or construction of EAI solutions.

MoIM-Sync can be easily utilized in developing enterprise level applications, data

integration between corporate' s existing applications, Web PIMS system, and data

synchronization services.

We would like to promote MoIM 2.0 from this project to be utilized as core

technologies in the mobile Internet applications through transferring technologies

into companies and commercialization of the result product. Furthermore we are

planning it to be lower technologies for applications services of "Next Generation

Internet Server Technology Development"

project so that the next generation server system can become a high value added

product.

Page 17: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 17 -

CONTENTS

Chapter 1 Introduction

1.1 Requirement

1.2 Research Goal and Contents

1.2.1 Research Goal

1.2.2 Contents

Chapter 2 MoIM-Message System

2.1 Introduction

2.2 Research

2.2.1 Features of MoIM-Message

2.2.2 MoIM-Message Components

2.2.3 Core Engine

2.2.4 Reliable Delivery

2.2.5 MoIM-Message Group Communication

2.2.6 Administration Tool

2.3 Results

Chapter 3 MoIM-Sync System

3.1 Introduction

3.2 Research

3.2.1 Features of MoIM-Sync

3.2.2 MoIM-Sync Architecture

3.2.3 SyncStore

3.2.4 MoIM-SyncML

3.3 Results

Page 18: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 18 -

Chapter 4 Conclusion

References

Abbreviations

Appendix: List of R&D Outputs

Page 19: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 19 -

List of Table

<Table 2-1> API Summary of Destination Module

<Table 2-2> API Summary of Interface Module

<Table 2-3> Communication(Transport) Module Summary

<Table 2-4> Server-side Transport Module Classes

<Table 2-5> Client-side Transport Module Classes

<Table 2-6> API Summary of Server-side Communication Module

<Table 2-7> API Summary of Client-side Communication Module

<Table 2-8> MoIM-Message Package Description

<Table 2-9> Reliable Delivery Module Classes

<Table 2-10> MoIM-Message Group Communication Classes

Page 20: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 20 -

List of Figures

<Figure 2-1> MoIM-Message Architecture

<Figure 2-2> MoIM-Message Server Architecture

<Figure 2-3> MoIM-Message Client Architecture

<Figure 2-4> Typical Multithread Model

<Figure 2-5> Socket Polling with Single-Thread Handler Model

<Figure 2-6> Socket Polling with Multi-Thread Handler Model

<Figure 2-7> Socket Polling Model and Code Example

<Figure 2-8> Changing Client Numbers

<Figure 2-9> Changing Message Lengths

<Figure 2-10> Changing Thread Pool Capacity

<Figure 2-11> Persistent Function

<Figure 2-12> Message Retransmission in case of Receiver Client's Failure

<Figure 2-13> Durable Function

<Figure 2-14> Reliable Delivery Module Architecture

<Figure 2-15> Group Communication Architecture

<Figure 2-16> Membership Change Request Handling Process 1

<Figure 2-17> First Member's Join Request Handling Process

<Figure 2-18> Last Member's Leave Request Handling Process

<Figure 2-19> Join Request Handling Process (State Transfer)

<Figure 2-20> Membership Change Request Handling Process 2

<Figure 2-21> Regular Message Handling Process 1

<Figure 2-22> Regular Message Handling Process 2

Page 21: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 21 -

<Figure 2-23> AdminTool Initial State

<Figure 2-24> Execution of MoIM-Message Server

<Figure 2-25> Browsing of messages sent in a Queue

<Figure 2-26> Browsing of asynchronous clients connected to a Topic

<Figure 3-1> Mobile Internet Environment

<Figure 3-2> MoIM-Sync Architecture

<Figure 3-3> Three-tier Architecture in MoIM-Sync

<Figure 3-4> SyncStore Subsystem Architecture

<Figure 3-5> SyncML Architecture

<Figure 3-6> SyncML Message Handling Process

Page 22: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 22 -

목 차

제 장 서론1

제 절 연구개발의 필요성1

제 절 연구 목표 및 내용2

연구 목표1.

연구 내용2.

제 장 시스템 개발2 MoIM-Message

제 절 개요1

제 절 연구 내용2

기능1. MoIM-Message

구성 요소2. MoIM-Message

기본 엔진3.

신뢰성보장 메시지 전송4.

그룹통신5. MoIM-Message

관리자 도구6.

제 절 연구 결과3

제 장 시스템 개발3 MoIM-Sync

제 절 개요1

제 절 연구 내용2

의 특징1. MoIM-Sync

의 구조2. MoIM-Sync

3. SyncStore

4. MoIM-SyncML

제 절 연구 결과3

Page 23: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 23 -

제 장 결론4

참고문헌

약어표

부록 기술문서 구성표:

Page 24: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 24 -

표 목 차

표 모듈 요약< 2-1> Destination API

표 인터페이스 모듈 요약< 2-2> API

표 통신 트랜스포트 모듈 요약< 2-3> ( )

표 서버측 트랜스포트 모듈 해당 클래스< 2-4>

표 클라이언트측 트랜스포트 모듈 해당 클래스< 2-5>

표 서버측 통신모듈 요약< 2-6> API

표 클라이언트측 통신모듈 요약< 2-7> API

표 패키지 설명< 2-8> MoIM-Message

표 신뢰성보장 메시징 기능 관련 주요 클래스< 2-9>

표 그룹통신 기능 관련 클래스 설명< 2-10> MoIM-Message

Page 25: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 25 -

그 림 목 차

그림 전체 구성도< 2-1> MoIM-Message

그림 서버 구조도< 2-2>

그림 클라이언트 구조도< 2-3>

그림 단순 다중 쓰레드 모델< 2-4>

그림 단일 쓰레드 소켓 폴링 모델< 2-5>

그림 다중 쓰레드 소켓 폴링 모델< 2-6>

그림 소켓 폴링 모델과 자바 예제코드< 2-7>

그림 클라이언트 수 변화에 따른 수행시간< 2-8>

그림 메시지 길이 변화에 따른 수행 시간< 2-9>

그림 쓰레드 풀의 용량 변화에 따른 수행시간< 2-10>

그림 기능< 2-11> Persistent

그림 수신자측에 장애가 발생한 경우 메시지 재전송< 2-12>

그림 기능< 2-13> Durable

그림 신뢰성보장 모듈 구조도< 2-14> MoIM-Message

그림 그룹통신 구조도< 2-15> MoIM-Message

그림 멤버쉽변경 요청할 때 와 응용과의 관계< 2-16> MoIM-Message

그림 첫번째 멤버가 참여요청 할 때 기본엔진과 그룹통신 구성요소간의 관계< 2-17>

그림 마지막 멤버가 탈퇴할 때 기본엔진과 그룹통신 구성 요소간의 관계< 2-18>

그림 상태전송 지원 그룹으로 참여할 때 와 응용과의 관계< 2-19> MoIM-Message

그림 멤버쉽 변경할 때 기본엔진과 그룹통신 구성요소간의 관계< 2-20>

Page 26: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 26 -

그림 그룹응용메시지 송수신시 와 응용과의 관계< 2-21> MoIM-Message

그림 그룹응용메시지 송수신시 기본엔진과 그룹통신 구성 요소간의 관계< 2-22>

그림 초기 실행 화면< 2-23> Admin Tool

그림 을 이용한 서버 실행< 2-24> Admin Tool MoIM-Message

그림 을 통해 큐에 전송된 메시지 브라우징< 2-25> Admin Tool

그림 을 통해 토픽에 접속한 비동기클라이언트 브라우징< 2-26> Admin Tool

그림 모바일 인터넷 환경< 3-1>

그림 구조< 3-2> MoIM-Sync

그림 계층 구조< 3-3> SyncStore 3

그림 내부 구조< 3-4> SyncStore

그림 구조< 3-5> SyncML

그림 요청 처리 과정< 3-6> SyncML

그림 요청 처리 과정< 3-7> SyncML

Page 27: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 27 -

제 장 서 론1

Page 28: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 28 -

제 장 서론1

제 절 연구개발의 필요성1

년대 후반부터 이동 전화기기 전송 전송망 기술의 획기적인 발달로 단순한 음성 전달1990 , ,

분야에서 사용되었던 전화기와 전화망이 데이터 전달기기 및 전달망으로서 중요한 역할을

하고 있으며 그 사용량과 중요성이 점차 증가되어 왔다 컴퓨터 하드웨어 기술의 비약적인.

발달과 더불어 정보통신 환경이 데이터 중심으로 바뀌고 휴대형 정보처리 기기가 모바일 통

신기술과 결합하여 이동 정보단말기로서 점차 보급됨에 따라 수요가 폭발적으로 증가하고

있다 따라서 무선 인터넷 사용자가 급속히 증가하는 가운데 모바일 인터넷은 초기에 휴대.

폰을 중심으로 한 단순 문자검색을 주로 하였으나 컴퓨터 하드웨어 기술의 발전으로

서브노트북 등과 같은 휴대형 컴퓨터를 중심으로 이동 인터넷을 형성하Pocket PC, PDA,

는 기술은 차세대 인터넷 환경에서 핵심 요소가 되었다.

모바일 인터넷 환경에서는 다양한 이유로 인하여 서비스를 이용하는 사용자측과 서비스를

제공하는 서버 사이에 논리적 물리적인 단절 이 자주 발생한다, (disconnected operation) .

이러한 경우에도 사용자에게는 단절이 발생하지 않는 것처럼 실제 서비스를 계속하여 사용

하게 할 필요성이 대두되고 있다 모바일 인터넷 환경에서 단절 원인으로는 첫째 무선통신. ,

의 고유한 특성 즉 이동정보단말기기 사용자가 전파 사각지대 터널 도심빌딩 지역 등 로의, ( , )

이동으로 무선인터넷 통신이 지연되는 경우에 발생한다 둘째 사용자 프로그램 이동정보. , , ,

단말기기 등의 빈번한 이동과 사용자가 이동정보단말기를 의도적으로 단절하는 경우이다.

셋째 이동정보단말기 서버 네트워크 등의 인터넷 구성요소에 오류가 발생하는 경우와 이, , ,

동정보 단말기가 충격이나 분실 전지 가 다 소모되거나 서버 또는 네트워크 구성, , (battery)

요소에 오류가 발생하는 경우에도 단절이 발생한다.

Page 29: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 29 -

본 연구에서는 이러한 단절을 극복하기 위하여 모바일 인터넷 환경에서 응용서비스가 사용,

하는 메시지의 전달을 보장하는 기술과 이동 정보단말기와 서버에 분산되어 있는 데이터간

의 동기를 지원하는 기술을 개발하였다.

본 연구에서 개발된 기술은 모바일 인터넷 환경에서 작업의 신뢰성을 보장하고 정확하게 처

리하기 위한 기반기술로 다음과 같은 중요성을 갖는다 첫째 모바일 메시징 미들웨어 기술. .

은 차세대 인터넷 환경에서 응용소프트웨어 개발도구로 활용 가능하다 이 기술은 모바일.

인터넷 환경을 지원하는 관련 서비스를 개발할 때 필수적인 핵심기능인 이동성과 신뢰성보

장 메시지전달기능을 이용할 때 가능하다 둘째 모바일 동기화 미들웨어 기술은 차세대 인. ,

터넷 환경의 경우 모든 이동 정보단말기가 단순히 음성만 주고받는 단계가 아닌 데이터 처

리의 기본이 될 것이므로 데이터 동기화 메시지 전달 사용 환경에서의 간단한 오류 복구, ,

등은 무선 통신서비스에서 필수적인 사항이므로 통신업체의 통신서비스 제품 개발의 핵심적

인 도구로 이용 가능하다 셋째 모바일 메시징 미들웨어 기술 및 모바일 동기화 미들웨어. ,

기술은 임계 업무 형태의 업무를 수행하는데 있어서 기업의 자원 및 비즈니스 프로세스를

최적화 및 자동화하여 기업의 투자관리 비용과 사이클 타임을 줄여 기업의 기업경쟁력을 향

상시킬 수 있다.

Page 30: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 30 -

제 절 연구 목표 및 내용2

연구 목표1.

본 연구의 최종목표는 모바일 인터넷 환경에서 사용자의 작업을 정확하고 일관성 있게 수행

하도록 지원하는 모바일 인터넷 미들웨어의 개발이다 이 모바일 인터넷 미들웨어는 모바일.

환경에서 응용서비스가 사용하는 신뢰성 있는 메시지 전달을 보장하는 모바일 메시징 미들

웨어의 개발과 모바일정보 단말기와 서버에 분산되어있는 데이터간의 동기화를 지원하는 모

바일동기화 미들웨어로 구성된다.

모바일 메시징 미들웨어 기술은 응용서비스가 사용하는 메시지의 전달을 보장하는 미들웨어

로 이동정보단말기 사용자에게 무선통신의 문제점에 구애 받지 않고 신뢰성보장 메시징 서

비스를 제공한다 또 참여 그룹간의 데이터의 일관성을 보장하기 위해 그룹통신 기능을 제.

공한다 모바일 동기화 미들웨어는 모바일 기업응용을 위한 미들웨어로 손쉬운 동기화 응용.

개발을 지원하머 국제 표준인 표준을 지원하며 기존의 동기 시스템들과 통합기능SyncML ,

을 제공한다.

연구 내용2.

모바일 인터넷 미들웨어 시스템은 모바일 메시징 미들웨어 기술과 모바일 동기화 미들웨어

기술로 구성되어있다 모바일 메시징 미들웨어 기술은 소프트웨어 응용프로그램간의 통신방.

법을 제공하고 클라이언트간의 메시지 송수신 기능을 제공하고 클라이언트가 은행업무 항,

공권 예약 경매 견적 등의 응용 서비스에 이용 가능하게 하기 위하여 다양한 메시지 전송, ,

방법과 메시지 타입을 제공한다 모바일 동기화 미들웨어 기술은 이라는 표준화된. SyncML

데이터 동기화 프로토콜을 기반으로 한 데이터 동기화 프레임워크를 제공하는 동기화 미들

웨어로서 모바일 기업 응용을 작성하는 응용프로그래머에게 데이터 동기화를 위한 추상화

된 인터페이스를 제공할 뿐만 아니라 사용중인 다양한 동기화 시스템들에 대한 연동을 용,

이하게 해주기 위한 시스템이다.

Page 31: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 31 -

차년도는 요구사항을 분석 시스템 정의를 상호 보완적으로 수행하고 설계 구현 및 시험1 , ,

은 독자적으로 진행한 다음 모바일 인터넷 미들웨어 완성을 위한 통합시험으로 모바일 인터

넷 미들웨어 시제품 을 개발하였다 차년도는 차년도에 개발한 모바일 인터넷 미들웨1.0( ) . 2 1

어 시제품 을 기반으로 모바일 인터넷 미들웨어 상용시제품 을 위한 확장 기능 정1.0( ) 2.0 ( )

의 및 설계 구현 후 안정화 시험을 통해 상용 시제품을 개발하였다, .

Page 32: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 32 -

제 장 시스템 개발2 MoIM-Message

Page 33: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 33 -

제 장 시스템 개발2 MoIM-Message

제 절 개요1

모바일 인터넷 환경에서는 컴퓨팅 자원이 유선 환경에 비해 제한적이고 네트워크 단절 현상

이 빈번하게 발생한다 는 네트워크접속 여부와 무관하게 모바일 클라이언. MoIM-Message

트 응용 서비스간 메시지 전달을 보장하는 메시징 시스템으로 소프트웨어 컴포넌트나 응용,

프로그램 사이의 통신 방법을 제공한다 중앙 집중형인 방식을 사용하는. Hub & Spoke

는 중앙에 메시지 중개자 역할을 하는 서버를 두고 각 시스템이 클라이언MoIM-Message

트 형태로 중앙 서버와 결합되어 시스템 간 메시지 교환이 이루어진다.

는 메시지 전송을 담당하는 서버 응용프로그램을 위한MoIM-Message MoIM-Message ,

그리고 클라이언트로 구성된다 와MoIM-Message API, MoIM-Message . Point-to-Point

두 가지 형태의 메시지 모델 와 그룹 멤버들 간의 데이터 일관성을Publish/Subscribe API

보장하는 그룹통신의 멤버쉽 서비스 및 그룹 메시징 서비스를 제공한다 이를 이용하여.

클라이언트는 다양한 응용 서비스를 구현할 수 있다MoIM-Message .

기반으로 구현된 는 업계 최신 표준을 준수하므로 타 시스템과의 연동JMS MoIM-Message

성이 뛰어나 통합 환경 및 구축을 위한 메시징 서버 솔루션으로 활용될 수 있다B2B EAI .

뿐만 아니라 와 같은 이동성과 신뢰성을 요구하는 응용 서비스를 위한 통신, M-Commerce

모듈 구현에 활용이 가능하며 워크플로우 그룹 회의 전자상거래 등의 신뢰성을 요구하는, ,

서비스분야에 적합하다.

Page 34: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 34 -

제 절 연구 내용2

기능1. MoIM-Message

가 기본 기능. MoIM-Message

는 소프트웨어 컴포넌트나 응용프로그램 사이의 통신방법을 제공한다MoIM-Message .

는 클라이언트간에 메시지 송수신 기능을 제공하고MoIM-Message MoIM-Message

클라이언트가 은행업무 항공권예약 경매 견적 등의 응용 서비스를 이용할MoIM-Message . , ,

수 있도록 다양한 메시지 전송 방법과 메시지 타입을 제공한다 가 제공하. MoIM-Message

는 메시지 전송 방법 이하 메시지 모델로 정의 은 다음과 같다( ) .

송신자측과 수신자측이 일대 일로 메시지를 주고받는 통신 방법으로Point-to-Point :●

예를 들어 은행업무 예약 같은 응용 서비스에서 사용한다, .

송신자측에서 보낸 메시지를 이 메시지에 관심 있는 모든 수신자에Publish/Subscribe :●

게 전송하는 일대다 통신 방법으로 예를 들어 경매 견적 같은 응용 서비스에서 사용한다, .

가 제공하는 메시지타입은 다음과 같다MoIM-Message .

메시지 타입 중에서 가장 기본적인 형태로 헤더와 속성만 가지고 있으며Message : ,●

를 포함하고 있지 않다 다른 메시지 타입에 대한 기본 인터페이스 역할을 하며payload . ,

또는 특정 작업의 으로서 사용된다event, warning, notification .

이 메시지 타입은 에 자바 객체를 실을 수 있다 따라Text Message : payload String .●

서 텍스트 데이터를 주고받을 때 사용할 수 있다 또한 문서와 같은 문자형 데이터를. , XML

주고받을 때 사용될 수 있다.

Page 35: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 35 -

이 메시지 타입은 에 자바 객체를 실을 수 있으므로 자바 객Object Message : payload●

체를 주고받을 때 사용할 수 있으며 자바 객체는 직렬화 되어야 한다 이 메, (serializable) .

시지 타입을 사용하기 위해서는 메시지 클라이언트가 반드시 자바 프로그램이어야만 한다.

이 메시지 타입은 에 바이트 배열을 실을 수 있으며 응용 프Bytes Message : payload●

로그램의 데이터가 다른 메시지 타입과 호환성이 없을 경우 이 메시지 타입을 사용하여 주

고받을 수 있다.

이 메시지 타입은 자바의 기본 데이터 타입을 스트림 형태로Stream Message :●

에 실을 수 있도록 한다 자바의 기본 데이터 형을 그대로 메시지에 싣기 위해서 이payload .

메시지 타입은 여러가지 메소드를 제공하며 의 데이터는 스트림 형태로 저장된다payload .

이 메시지 타입의 는 자바의 와 유사한 형Map Message : payload java.util.Properties●

태로서 의 쌍으로 되어 있다 그러나 는 자바의 기본 데이터형과(name, value) . value String

형만을 사용할 수 있다.

나 신뢰성보장 메시지 전송 기능.

이동 환경에서는 휴대용 전화기와 같은 씬 클라이언트 를 이Pocket PC, PDA, - (thin client)

용하기 때문에 사용할 수 있는 컴퓨팅 자원이 유선 환경에 비해 훨씬 제한적이다 또한 비.

싼 통신 요금으로 인한 사용자 고의 단절 네트워크 장애로 인한 단절 그리고 배터리 제한, ,

에 의한 단절 등 유선환경에 비해 클라이언트가 메시징 시스템과 단절되는 경우가 빈번하

다 이를 해결하기 위하여 는 클라이언트가 컴퓨팅 자원 사용을 최대한 줄. MoIM-Message

이면서 신뢰성보장 메시지 전송 기능을 제공한다 가 제공하는 신뢰성보장. MoIM-Message

메시지 전송 기능은 송신자측과 수신자측 요구에 의하여 두 가지로 나누어진다.

Page 36: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 36 -

기능 송신자측 요구에 의한 신뢰성보장 메시지 전송 기능으로 송신자측 요Persistent :●

구에 의하여 송신자에서 보낸 메시지는 메시징 시스템 네트워크 장애 그리고 수신자측 시,

스템에 장애가 발생하더라도 반드시 수신자에게 전송됨을 보장한다.

기능 수신자측 요구에 의한 신뢰성보장 메시지 전송기능으로 수신자측 요구Durable :●

에 의하여 수신자측 시스템 혹은 네트워크 장애가 발생하더라도 반드시 수신자에게 메시지

가 전송됨을 보장한다.

다 그룹통신 기능.

일반적인 방식에서는 송수신자에 대한 정보가 없으므로 송신자는 자신Publish/Subscribe

이 보내는 메시지를 어떤 수신자들이 받을지 예상할 수없으며 송신자도 수신자에 대한 정,

보를 알 수 없다 수신자들의 의견수렴이 필요할 때는 이러한 수신자 리스트가 필수적이다. .

일반적인 방식에서의 수신자들은 서버에 등록되는 시점으로부터 메시지Publish/Subscribe

를 받게 되므로 뒤늦게 등록한 수신자는 이전까지 수신자들이 받은 데이터의 갱신을 알 수

없으며 수신자들이 복제 데이터를 가지고 있을 때 그 데이터의 일관성을 보장할 수 없다, .

그룹통신 기능은 수신자 멤버쉽 관리와 그룹 메시징을 통하여 수신자들이MoIM-Message

구성하는 그룹 내 데이터의 일관성과 합의를 지원함으로써 응용 개발자들의 노력을 절감시,

킬 수 있다.

Page 37: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 37 -

그룹통신 기능은 다음과 같은 역할을 담당한다MoIM-Message .

수신자 멤버쉽 정보를 관리하면서 멤버쉽 정보가 변경될 시에 멤버들에게 통보해 준다, .●

후발 참여 멤버를 위한 상태 전송을 지원한다.●

송신자가 예상하는 모든 수신자로 성공적으로 전달될 때에만 응용에게 유효한 atomic●

다중전송을 지원한다.

응용의 요구에 따라 또는 을 지원한다, peer group server group .●

모바일 인터넷 환경에서의 빈번한 단절을 극복하기 위하여 네트워크 복원 후 재 참여를●

지원한다.

수신자들의 일관성에 영향이 없는 메시지들을 병행 처리한다.●

라 산업 표준 지원.

산업 표준인 사의 와 동일한 기능을 지원한다 표준 를 이용하여 기업Sun JMS API . JMS API

에서 사용할 수 있는 분산 응용프로그램을 보다 쉽게 작성할 수 있게 한다.

마 우선순위 기능.

우선순위 기능은 송신자가 긴급히 처리해야 할 메시지가 있는 경우에 이용되며 이 경우에

수신자측에서는 아직 실행되지 않은 메시지보다 방금 도착한 메시지를 먼저 실행할 수 있어

야 한다 따라서 는 송신자가 해당 메시지의 우선 실행을 수신자측에 요구. MoIM-Message

하는 기능을 제공한다.

Page 38: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 38 -

구성 요소2. MoIM-Message

의 전체 구성도는 그림 와 같이 서버와MoIM-Message < 2-1> MoIM-Message

클라이언트 그리고 메시지로 구성된다MoIM-Message .

가 서버. MoIM-Message

서로 다른 소프트웨어 응용프로그램간 통신을 가능하게 하는 메시징 시스템이다.

는 중앙 집중형 구조로서 모든 클라이언트가 서버에 연결MoIM-Message MoIM-Message

되고 송신자 및 수신자 양측에 모두 투명성을 제공한다 서버는. MoIM-Message

와 같은 기본 기능과 신뢰성보장 메시징 전송과 그룹통Point-to-Point, Publish/Subscribe

신의 부가 기능을 제공한다.

나 클라이언트. MoIM-Message

메시지 송수신을 하는 자바 언어로 작성된 응용프로그램을 의미한다 클라. MoIM-Message

이언트는 서버에서 제공하는 를 사용하여 응용 프로MoIM-Message MoIM-Message API

그램을 작성한다 는 산업 표준인 사의 와 동일한 기능을. MoIM-Message API Sun JMS API

지원한다.

다 메시지.

클라이언트간 정보 교환을 위해 각 응용프로그램이 정의하는 정보의 집합으로 Message,

의Text Message, Object Message, Map Message, Stream Message, Bytes Message

메시지 타입을 제공한다.

Page 39: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 39 -

그림 전체 구성도< 2-1> MoIM-Message

기본 엔진3.

기본 엔진은 과 의 두 가지 유형의 메시징 모델을MMS Point-to-Point Publish/Subscribe

지원하며 추가로 메시징 모델을 확장한 그룹통신 기능도 제공한다Publish/Subscribe .

메시징 모델은 큐 라는 가상 채널을 사용하여 클라이언트 응용간의Point-to-Point (Queue)

일대일 메시지 전달을 가능하게 하며 메시지 모델은 토픽 이라는Publish/Subscribe (Topic)

가상 채널을 사용하여 여러 클라이언트 응용간의 일대다 형태의 메시지 전달 및 분배를 가

능하게 한다.

기본 엔진은 크게 메시지 전달 및 저장 서비스를 담당하는 서버 와 클라MMS (MMS Server)

이언트 응용에게 메시지 전달 서비스를 제공하는 클라이언트 런타임 부분(Client Runtime)

으로 이루어진다 에서 제공하는 기능을 사용할 수 있는 클라이언트 응용은 크게 큐. MMS

클라이언트 토픽 클라이언트 및 그룹통신 클라이언트(Queue Client), (Topic Client) (GCS

로 분류될 수 있으며 각 클라이언트 응용은 각각의 요구에 따라 클라이언트 런타임Client)

이 제공하는 에이전트를 생성하여 에이전트의 메소드를 통해 메시지를 전달할 수 있다.

Page 40: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 40 -

네트워크 통신 프로토콜에는 트랜스포트 계층 위에서 동작하는 와 소켓을 사용하였으RMI

며 메시지 송 수신 기능 관점과 메시징 모델이 의미하는 논리적인 관점을 분리하고 메시징, /

모델의 설계 및 구현에 효율성을 높이기 위해 클라이언트 런타임과 서버측에 각각 통신을

담당하는 메시지 통신 계층을 두고 이를 통해 클라이언트 응용과 서버간의 메시지 전달이

이루어지도록 설계하였다 또한 프로토콜의 추가가 용이하도록 인터페이스를 제공하고 있.

다.

가 개요.

기본 엔진은 과 의 두 가지 유형의 메시MoIM-Message Point-to-Point Publish/Subscribe

징 모델을 지원하며 추가로 메시징 모델을 확장한 그룹통신 기능도 제Publish/Subscribe

공한다 메시징 모델은 큐라는 가상 채널을 사용하여 클라이언트 응용간의. Point-to-Point

일대일 메시지 전달을 가능하게 하며 메시지 모델은 토픽이라는 가상Publish/Subscribe

채널을 사용하여 여러 클라이언트 응용간의 일대다 형태의 메시지 전달 및 분배를 가능하게

한다.

나 설계 및 구현.

기본 엔진은 크게 메시지 전달 및 저장 서비스를 담당하는 서버MoIM-Message

와 클라이언트 응용에게 메시지 전달 서비스를 제공하는 클라이언(MoIM-Message Server)

트 부분으로 이루어진다 에서 제공하는 기능을 사(MoIM-Message Client) . MoIM-Message

용할 수 있는 클라이언트 응용은 크게 큐 클라이언트 토픽 클라이언트(Queue Client),

및 그룹통신 클라이언트 로 분류될 수 있으며 각 클라이언트 응(Topic Client) (GCS Client)

용은 각각의 요구에 따라 클라이언트 를 사용하여 메시지를 전달할 수MoIM-Message API

있다.

Page 41: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 41 -

네트워크 통신 프로토콜에는 트랜스포트 서비스 하위에서 동작하는(Transport Service)

와 소켓을 사용하였으며 메시지 송 수신 기능 관점과 메시징 모델이 의미하는 논리적RMI , /

인 관점을 분리하고 메시징 모델의 설계 및 구현에 효율성을 높이기 위해 클라이언트와 서

버측에 각각 통신을 담당하는 통신 계층을 두고 이를 통해 클라이언트 웅용과 서버간의 메

시지 전달이 이루어지도록 설계하였다 또한 필요에 따라서 프로토콜의 추가가 용이하도록.

인터페이스를 제공하고 있다.

기본엔진의 구조1)

그림 는 서버 구조도이다 은 기본엔진을 기준으로 신뢰성보장 모듈< 2-2> . MoIM-Message

그룹통신 모듈(Reliable Delivery Module), (Group Communication Service Module-GCS

통신 모듈 이 미리 정의된 한정된 수의 인터페이스를 사module), (Communication Module)

용하여 연동되도록 설계되었다 또한 통신 모듈을 독립 모듈로 분리하여 새로운 프로토콜의.

추가가 용이한 구조를 갖고 있다.

그림 은 클라이언트 구조도이다 서버와 유사한 구조를 갖도록 설계하여 일관성을 유< 2-3> .

지하며 모듈간의 독립성을 확보하여 안정적인 동작성능을 갖는다 통신 프로토콜의 경우 한.

클라이언트 응용은 한 개의 프로토콜만 선택적으로 사용할 수 있다.

Page 42: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 42 -

그림 서버 구조도< 2-2>

그림 클라이언트 구조도< 2-3>

Page 43: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 43 -

가 기본엔진 서버구조)

기본엔진의 서버 모듈은 크게 세 가지 부분으로 구성되어 있다MoIM-Message .

모듈Destination●

인터페이스 모듈●

신뢰성보장 모듈 및 그룹통신 모듈- (Reliable Delivery Service) (Group Communication

연결 통신모듈Service) ●

모듈(1) Destination

은 및 으로 나뉘어 진다 는 메Destination Queue, Topic GCSTopic . Queue Point-to-Point

시지 전달에 사용되며 은 메시지 전달에 사용된다 은, Topic Publish/Subscribe . GCSTopic

그룹통신을 위해 추가적으로 정의된 으로 과 유사한 기능을 갖는다Destination Topic .

기본엔진에서 은 관리 객체 이다 또 다MoIM-Message Destination (administered object) .

른 관리 객체로는 가 있다 관리객체는 서버 관리자MoIM-Message Connection Factory .

에 의해 생성되어 클라이언트 응용이 사용할 수 있도록 제공되는 객체이다(administrator) .

의 하위 객체인 와 도 관리 객체로서 클라이언트 응용에서는 서버Destination Queue Topic ,

측의 실제 메시지를 저장하는 저장소를 명시하기 위한 참조 객체로서 사용되며 메시지를,

실제적으로 저장하는 저장소는 으로서 서버가 시작될 때SSDestination Destination

에 의해 생성된다 클라이언트 응용에서는 은 보이지 않으며Manager . SSDestination ,

의 하위 인터페이스인 또는 을 지정하여 메시지를 송신 또는 수신Destination Queue Topic

함으로써 마치 메시지 저장소가 클라이언트의 로컬영역에 존재하는 것으로 인식하게 된다.

또한 와 은 클라이언트 응용의 요청에 의해 서버에, Temporary Queue TemporararyTopic

동적으로 생성되는 으로서 명시적인 제거 요청이 있기 전까지 서버측에 유지된Destination

다.

Page 44: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 44 -

표 은 모듈 관련 서버측 요약표이다< 2-1> Destination API .

표 모듈 요약< 2-1> Destination API

Implementation Class Major methods Description

Idplab.moim.mms.server.DestinationManager

createQueue()createTopic()createGCSTopic()registerConsumer()deregisterConsumer()

생성Queue생성Topic

생성GCSTopic등록Consumer등록해제Consumer

Idplab.moim.mms.server.SSDestinationImpl

Get()Put()registerAsyncConsumer()deregisterAsyncConsumer()syncReceiveRequest()run()

메시지 저장하기메시지 가져오기비동기 수신 클라이언트 등록비동기 수신 클라이언트 등록해제동기 수신요청 등록동기 비동기 수신요청 처리/

Idplab.moim.mms.server.QueueImpl

과 동일SSDestinationImpl

Idplab.moim.mms.server.TopicImpl

과 동일SSDestinationImpl

Idplab.moim.mms.server.GCSTopicImpl

장 그룹통신 기능에서 설명5

Idplab.moim.mms.DestinationImpl

isQueue()isTopic()isGCSTopic()

인스턴스가 인지 확인Queue인스턴스가 인지 확인Topic인스턴스가 인지 확GCSTopic인

Idplab.moim.mms.QueueImpl

의DestinationImpl isQueue()구현

Idplab.moim.mms.TopicImpl

의DestinationImpl isTopic()구현

Idplab.moim.mms.TemporaryQueueImpl

Delete() 서버측에 생성된삭제 요청TemporarayQueue

Idplab.moim.mms.TemporaryTopicImpl

Delete() 서버측에 생성된삭제 요청TemporarayTopic

Page 45: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 45 -

와 은 에서 모두 관리 한다 통신모듈로부터 전달된 메시Queue Topic DestinationManager .

지는 인터페이스 모듈인 를 거쳐 로 전달되고VirtualClientBroker DestinationManager ,

는 해당 나 에 메시지를 저장한다 마찬가지로 나DestinationManager Queue Topic . Queue

에 저장된 메시지는 를 통하여 로 전달되고Topic DestinationManager VirtualClientBroker ,

다시하부 통신모듈로 전달된다.

인터페이스 모듈(2)

인터페이스 모듈은 로 모듈간 인터페이스를 담당한다 즉 각 모듈간 통VirtualClientBroker . ,

신은 모두 를 통해서 이루어진다 클라이언트로부터 전달된 메시지는VirtualClientBroker .

를 통하여 먼저 메시지 버퍼인 에 저장된다 저장된TransportService RawMessageHolder .

메시지는 상위모듈로 독립적으로 전달된다 이렇게 전달된 메시지는 에. VirtualClientBroker

서 메시지의 속성을 기준으로 필요한 모듈로 전달된다.

는 기본엔진과 신뢰성보장 모듈 및 그룹통신 모듈을 연결하는 모듈로서VirtualClientBroker

기본엔진으로 전송되는 메시지를 주어진 조건에 따라 신뢰성보장 모듈 또는 그룹통신 모듈

에게 전달한다.

가 는 신뢰성보장 모듈을 관리하는 관리자 객체이다( ) RCSManager .

나 는 그룹통신 모듈을 관리하는 관리자 객체이다( ) GCSManager .

다 는 신뢰성보장 모듈과 그룹통신 모듈간의 메시지 전달을 관리한다( ) VirtualClientBroker .

Page 46: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 46 -

표 는 인터페이스 모듈의 요약표이다< 2-2> API .

표 인터페이스 모듈 요약< 2-2> API

ImplementationClass

Major methods Description

VirtualClientImplcreateDestination()

registerConsumer()

deregisterConsumer()

imcomingMessage()outgoingMessage()restoreMessage()storeGCSMessage()transferGCSMessage()sendACKMessage()on Exception()

TransportService생성요청[C: ]-

>DestinationManager

등록요청TransportService [C: ]-

>DestinationManager

등록해제요청TransportService [C: ]-

>DestinationManager

TransportServiceDestinationManagerDestinationManagerTrensportServiceRCSManagerDestinationManagerincomingMessgae()GCSManagerincomingMessgae()RCSManagerGCSManagerTransportService

메시지[m:ack ] ->TransportService[m:exception] ->TransportService

[m]->

[m]->

[m]->

[m]->

[m]->

[m]->

GCSManagerImpl 장 그룹통신 기능에서 설명5

RCSManagerImpl 장 신뢰성보장 메시징 기능에서 설명4

메시지*[m] : , [c] : control메시지 또는 제어 흐름* -> :

통신모듈(3)

는 다양한 통신 프로토콜을 지원하며 현재 소켓과 를 이용한 통신방식MoIM-Message RMI

이 구현되어 있다 또한 클라이언트와의 통신용 인터페이스를 구현할 경우 쉽게 프로토콜을.

추가할 수 있다.

Page 47: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 47 -

클라이언트로부터 전송된 메시지는 해당 프로토콜 어댑터를 거쳐 로 전달TransportService

되고 여기에서 다시 에 저장된다 이것은 통신단과 상위 모듈의 독립, RawMessageHolder .

성을 보장하는 구조이다 마찬가지로 상위모듈에서 클라이언트로 전송될 메시지는.

로 보내지고 에서 해당 메시지를 쓰레드에 할당하여 클라이ThreadPoolMgr ThreadPoolMgr

언트로 전송하게 된다.

다음은 서버와 클라이언트 통신 모듈을 구성하는 클래스에 대한 요약 설명이다.

표 통신 트랜스포트 모듈 요약< 2-3> ( )

트랜스포트 관리자 서버측 트랜스포트 모듈의 생성 및 관리

프로토콜 트랜스포트 로더 해당 프로토콜의 환경 설정 및 로딩

프로토콜 트랜스포트 어댑터 해당 프로토콜을 이용한 메시지 송수신

메시지 버퍼 및 쓰레드메시지 송수신에 사용되는 버퍼와 송수신 쓰레드

표 서버측 트랜스포트 모듈 해당 클래스< 2-4>

트랜스포트 관리자 TransportService

프로토콜 트랜스포트 로더 RmiTransportLoader,SocketTransportLoader

프로토콜 트랜스포트 어댑터RmiTransportAdaptor,SocketTransportLoader

프로토콜 정보 및 메시지 버퍼ClientSocketPack,CleintInfoPackHolder,MessagePackHolder

송수신 쓰레드ObjectReadRunnableSendMessageRunnable

처리Acknowledge AckHandler

표 클라이언트측 트랜스포트 모듈 해당 클래스< 2-5>

트랜스포트 관리자 TransportClientService

프로토콜 트랜스포트 로더 RmiTransportLoader,SocketTransportLoader

프로토콜 트랜스포트 어댑터 RmiCallbackAdaptor,SocketTransportLoader

메시지 버퍼GlobalSyncMessage ButterSyncMessageListener

처리Acknowledge ClientAckHandler

Page 48: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 48 -

표 은 통신 모듈관련 요약표이다< 2-6> API .

표 서버측 통신 모듈 요약< 2-6> API

Implementation Class Major methods Description

Idplab.moim.mms.server.TransportService

incomingMessage()sendOutMessage()bindCallback()unbindCallback()handleSendMessageException()

TransportAdaptor [m] ->DestinationManagerDestinationManager [m] ->TransportAdaptor

등록요청 처리callback등록해제 처리callback

메시지 전송 에러 처리

Idplab.moim.mmsserver.RawMessageHolder

Run() 메시지 버퍼TransportService [m] ->DestinationManager

Idplab.moim.mmsserver.SendMessageHolder

Run()전송 쓰레드TransportService[m] ->TransportAdaptor

Idplab.moim.mmsserver. rmi.RmitransportLoader

bindCallback()unbindCallback()imcomingMessage()sendOutMessage()

[c: callback] ->TransportService[c: callback] ->TransportService[m] <- TransportService[m] -> TransportService

Idplab.moim.mmsserver. socket.SocketTransportLoader

bindCallback()unbindCallback()imcomingMessage()sendOutMessage()

[c: callback] ->TransportService[c: callback] ->TransportService[m] <- TransportService[m] -> TransportService

Idplab.moim.mmsserver. rmiRmiTransportAdaptorImpl

bindCallback()unbindCallback()sendOutMessage()

[c: callback] ->RmitransportLoader[c: callback] ->RmitransportLoader[m] <- TransportService[m] -> TransportService

Idplab.moim.mmsserver. socket.SocketPackHolder

Add()Remove()메시지 수신 소켓 처리메시지 수신 소켓 삭제

Idplab.moim.mmsserver. socket.ObjectReadRunnable

Run()할당된 소켓으로부터 메시지 read

Idplab.moim.mmsclient.

createDestination()bindCallback()

생성요청Destination ->TransportLoader

Page 49: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 49 -

TransportClientService

unbindCallback()registerConsumer()deregisterConsumer()incomingMessage()sendMessage()receive()

[c: callback] ->TransportAdaptor[c: callback] ->TransportAdaptor등록요청[c: ] -

>TransportAdaptor등록해제요청[c: ] ->

>TransportAdaptorTransportLoader [m] ->DestinationManagerDestinationManager [m] ->TransportLoaderTransportAdaptor [m] ->

처리sync receive

Idplab.moim.mms.client.rmi.RmitransportLoader

createDestination()bindCallback()unbindCallback()registerClient()deregisterClient()imcomingMessage()sendOutMessage()

생성요청Destination ->CallbackAdaptor[c: callback] ->CallbackAdaptor[c: callback] ->CallbackAdaptor등록요청[c: ] ->

CallbackAdaptor등록해제요청[c: ] ->

CallbackAdaptorCallbackAdaptor [m] -> TCSTCS [m] -> CallbackAdaptor

Idplab.moim.mms.client.socket.SocketTransportLoader

createDestination()bindCallback()unbindCallback()registerClient()deregisterClient()imcomingMessage()sendOutMessage()

생성요청Destination ->CallbackAdaptor[c: callback] ->CallbackAdaptor[c: callback] ->CallbackAdaptor등록요청[c: ] ->

CallbackAdaptor등록해제요청[c: ] ->

CallbackAdaptorServer SocketTransportLoader[m]-> TCSTCS [m]-> serversocketTransportLoader

Idplab.moim.mms.client.rmi.RmiCallbackAdaptorImpl

sendMessage()ping()

TransportAdaptor [m] ->TransportAdaptor

인스턴스 실행CallbackAdaptor확인

메시지* [m] : , [c] : control, TCS : TransportClientService

메시지 또는 제어 흐름-> :

Page 50: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 50 -

나 기본엔진 클라이언트 구조)

기본엔진의 클라이언트 모듈은 응용 프로그램과 호환을 유지하기 위해 에 정의된JMS JMS

클라이언트측 인터페이스를 대부분 만족한다.

기본엔진 클라이언트 모듈은 와MoIM-MessageMessageProducer

및 로 이루어지며MoIM-MessageMessageConsumer MoIM-MessageMessageProsumer ,

는 와Mo IM -M e s s a g eM e s s a g e P r o d u c e r M o IM -M e s s a g e Q u e u e S e n d e r

가 하위 인터페이스로 구성되고MoIM-MessageTopicPublisher ,

는 와MoIM-MessageMessageConsumer MoIM-MessageQueueReceiver

가 하위 인터페이스로 존재한다MoIM-MessageTopicSubscriber .

는 그룹통신 클라이언트 응용을 지원하기 위한 인터페이MoIM-MessageMessageProsumer

스로서 를 하위 클래스로 가진다MoIM-MessageGCSMember .

또한 비동기 메시지 수신을 위해 사용되는 인터페이스와 메시지 송수신MessageListener

시 발생하는 오류의 처리를 위해 가 제공된다 인터페이ExceptionListener . DeliveryMode

스는 메시지 송수신 모드를 결정하는데 사용되는 상수를 가지고 있다.

클라이언트 응용 프로그램에서는 위에 나타난 구현 클래스들을 생성하여 사용하게 된다.

의 클라이언트측 인터페이스와 호환되기 위해서는 과JMS MoIM-MessageSession

및 의 하위 인터페이스인MoIM-MessageConnection ConnectionFactory

와 의 구현 클래스의 생성이 필요하므로QueueConnectionFactory TopicConnectionFactory

이를 위해 기본엔진 클라이언트측 모듈에 포함되어 있다.

Page 51: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 51 -

표 은 클라이언트용 주요 요약표이다< 2-7> API .

표 클라이언트측 통신모듈 요약< 2-7> API

Implementation Class Major methods Description

MoIM-MessageMessageProducerImpl

Send() [m] -> Destination

MoIM-MessageMessageConsumerImpl

Receive()Receive(timeout)

[m] -> Destination(sync)[m] -> Destination(sync)

MoIM-MessageMessageSenderImpl

send() [m] -> Destination

MoIM-MessageMessageReceiverImpl

Receive()Receive(timeout)

<- [m] -> Destination(sync)<- [m] -> Destination(sync)

MoIM-MessageMessagePublisherImpl

Publish() [m] -> Destination

MoIM-MessageMessageSubscriberImpl

Receive()Receive(timeout)

<- [m] -> Destination(sync)<- [m] -> Destination(sync)

MessageListener onMessage() <- [m] -> Destination(sync)

메시지* [m] :* sync : synchronous delivery, async : asynchronous delivery

패키지2)

다음 표는 를 구성하는 패키지에 대해 간략히 설명하고 있다MoIM-Message .

표 패키지 설명< 2-8> MoIM-Message

패키지 명 설명

공통 패키지 Idplab.moim.mms. 공통 클래스 포함

클라이언트패키지

Idplab.moim.mms.client 클라이언트 구현 클래스

Idplab.moim.mms.client.rmi 통신 클래스JRMP

Idplab.moim.mms.client.socket 소켓 통신 클래스

Page 52: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 52 -

Idplab.moim.mms.client.soap 통신 클래스SOAP

서버패키지

Idplab.moim.mms.server 서버 구현 클래스

Idplab.moim.mms.server.rmi 통신 클래스JRMP

Idplab.moim.mms.server.socket 소켓 통신 클래스

Idplab.moim.mms.server.soap 통신 클래스SOAP

Idplab.moim.mms.server.gcs 그룹통신 구현 클래스

Idplab.moim.mms.server.reliable 신뢰성 모듈 구현 클래스

Idplab.moim.mms.server.reliable.dbadaptor

데이터베이스 관련 클래스

유틸리티패키지

Idplab.moim.mms.util 공통 유틸리티 클래스

인터페JMS이스 패키지

Idplab.moim.javax.mms 래퍼용 인터페이스JMS

다 소켓 통신모듈 구조 및 성능 시험.

소켓 폴링1)

가 소켓 폴링의 필요성)

등의 언어를 이용하여 전통적인 소켓 서버 응용프로그램을 개발할 경C/C++, perl, python

우 두 가지 방법을 이용할 수 있다 첫번째는 함수를 이용하여 독립적인 자식 프로세, . fork()

스 를 생성하거나 쓰레드 프로그램을 이용하여 각각의 클라이언트에게 서비(child process)

스를 제공하는 방법이다 이러한 방법은 프로그램 코드를 간단하게 하고 일정 수의 클라이.

언트가 접속하는 경우에는 빠른 서비스 성능을 보여준다 그러나 클라이언트의 접속 수가. ,

늘어갈수록 다수의 프로세스나 쓰레드를 관리하기 위하여 작업 전환 이나(task switching)

가상 메모리 할당 과 같은 일이 서버의 에 큰 부담으로 작(virtual memory allocation) CPU

용하여 속도가 느려지고 최악의 경우 동작 불능상태가 될 수도 있다 이러한 문제는 쓰레드.

풀 을 사용하여 사용되는 최대 쓰레드의 수를 조절하여 막을 수 있다 그러나(thread pool) .

다중 쓰레드 모델에는 근본적으로 클라이언트로부터 데이터가 전송될 때까지 해당 쓰레드는

아무런 일도 하직 않고 공전 상태로 서버의 귀중한 시스템의 자원을 낭비하게 되는 문(idle)

제가 존재한다.

Page 53: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 53 -

두번째는 단일 쓰레드에서 함수를 이용하여 모든 클라이언트의 요청을 처리하는 방select()

법으로 보통 소켓 폴링 이라고 한다 이 경우 접속수와는 관계없이 단일 쓰, (socket polling) . ,

레드를 사용하기 때문에 쓰레드 관리와 관련된 문제를 고려할 필요 없이 다수의 클라이언트

를 수용할 수 있다 그러나 서비스 품질 의 관점에서 본다면 접속하는. (Quality of Service) ,

클라이언트의 수가 증가할수록 먼저 등록된 요청이 처리될 때까지 클라이언트가 기다리는

시간이 증가하게 된다 또한 관련 함수를 사용하여 서버를 설계하고 구현하는 것. select()

자체가 함수를 이용한 다중 프로세스 또는 다중 쓰레드를 이용하는 단순 다중 쓰레fork()

드 모델보다 어렵고 복잡하다는 단점이 있다.

함수의 경우 보통 네트워크 디바이스 드라이버의 인터럽트를 이용하여 구현되select() I/O

고 대부분의 기계에서 는 시스템 호출로 제공된다 까지 비동기( UNIX select() ) JDK 1.3 I/O

기능을 제공하지 않았기 때문에 자바에서는 함수가 제공되지 않았다 현재select() . JDK 1.4

부터 패키지에서 이러한 비동기 를 제공하면서 이러한 문제가 해결되었다 그러java.nio I/O .

나 많은 자바 응용프로그램들이 아직도 을 기반으로 개발되고 있기 때문에JDK 1.3 JDK

에서 기능을 구현할 필요가 생기게 되었다1.3 select() .

대부분의 서버는 와 밀접하게 연관되어 있는데 서버의 는 외부 장치로부터의 입력I/O , CPU

소켓 서버의 경우에는 네트워크로부터의 입력 을 기다리며 의 시간을 공전상태로 놓( ) 99.9%

여있게 된다 이러한 문제는 서버와 클라이언트간의 대역폭 차이에 의해서 더욱 악화된다. .

단순 다중 쓰레드 모델을 이용하여 소켓 서버를 구현할 경우 각각의 연결을 담당하는 쓰레,

드들은 각 소켓 스트림 으로부터 데이터가 입력될 때까지 매우 긴 시간을 기다리게(stream)

될 것이다.

Page 54: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 54 -

본 연구에서는 다양한 시뮬레이션 환경에서 세가지 소켓 프로그래밍모델에 대하여 그 성능

을 비교평가 하였다 이 세가지 모델은 단순 다중 쓰레드 모델. (typical multi-thread

단일 쓰레드 소켓 폴링 모델 다중 쓰model), (socket polling with single-thread model),

레드 소켓 폴링 모델 이다 본 연구에서는 폴링(socket polling with multi-thread model) .

방법과 쓰레드 풀을 사용하여 에서 다중 쓰레드 소켓 폴링 모델을 구현하였다 이JDK 1.3 .

모델의 경우 단순한 다중 쓰레드의 장점과 쓰레드 오버헤드 및 리소스 낭비를 막을 수 있는

장점을 제공한다 또한 복잡한 구조에도 불구하고 단순 다중 쓰레드 모델와 유사하거나 더.

나은 성능을 보이고 쓰레드 풀의 용량보다 더 많은 수의 클라이언트를 수용할 수 있다,

나 세가지 소켓 프로그래밍 모델)

본 연구에서는 단순 다중 쓰레드 모델 단일 쓰레드 소켓 폴(typical multi-thread model),

링 모델 다중 쓰레드 소켓 폴링 모델(socket polling with single-thread model), (socket

의 세가지 소켓 프로그래밍 모델의 성능을 비교하였다polling with multi-thread model) .

단순 다중 쓰레드 모델의 경우 구현하기 쉽고 많은 소켓 서버에서 대부분 사용되고 있다.

단일 쓰레드 소켓 폴링 모델은 에서 사용되고 있으며 과부하 웹 서버에 적MEDUSA [16] ,

합하다 본 연구에서는 다중 쓰레드 소켓 폴링 모델을 제안하였다 이 모델은 앞의 두 모델. .

을 조합한 것으로 네트워크 연결 수에 영향을 받지 않으며 다양한 리소스 요구량에 맞도록,

쓰레드 풀의 용량을 제어할 수 있다 경우에 따라서 스타일의 단일 쓰레드 모델.( MEDUSA

로 설정할 수도 있다)

Page 55: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 55 -

단순 다중 쓰레드 모델(1)

그림 는 단순 다중 쓰레드 모델이다 각 클라이언트 소켓은 전담 쓰레드에서 처리되< 2-4> .

므로 완료된 결과는 즉시 클라이언트로 전송된다 반면에 클라이언트의 연결 수가 증가함에.

따라서 동일한 수의 쓰레드가 생성되어야 한다 그러나 대부분의 쓰레드들은 클라이언트로.

부터 요청이 발생할 때까지 리소스를 차지하며 공전상태로 남아있게 된다 이러한 문제점은.

다중 쓰레드 모델을 사용한 소켓 서버에 잠재되어 있는 결함이라 할 수 있다.

그림 단순 다중 쓰레드 모델< 2-4>

단일 쓰레드 소켓 폴링 모델(2)

그림 는 단일 쓰레드 소켓 폴링 모델이다 서버로부터 인가된 클라이언트 소켓은 소< 2-5> .

켓풀 에 저장된다 단일 처리 쓰레드 는 폴링 과정을 통(socket pool) . (single thread handler)

하여 데이터를 갖고 있는 소켓들을 순서대로 선택하고 요청을 처리한 후 소켓 풀에 반환한,

다.

Page 56: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 56 -

이 모델의 경우 쓰레드보다 훨씬 부담이 적은 클라이언트 소켓용 메모리 공간만 증가하게,

되므로 클라이언트의 연결 수가 늘어나는 것에 큰 영향을 받지 않는다 그러나 각 소켓이, .

자신의 요청이 처리되기까지 기다리는 시간 또한 늘어나게 되고 이러한 대기 시간은 클라,

이언트와 서버간에 주고받는 데이터의 용량에 매우 종속적일 수밖에 없다 따라서 단일 쓰.

레드 소켓 폴링 서버를 구현하기 전에 주고받는 데이터양의 고려가 우선적으로 선행되어야

할 것이다.

그림 단일 쓰레드 소켓 폴링 모델< 2-5>

다중 쓰레드 소켓 폴링 모델(3)

그림 은 본 과제에서 제안한 다중 쓰레드 소켓 폴링 모델이다 이 모델은 앞의 단일< 2-6> .

쓰레드 소켓 폴링 모텔과 유사하다 여기에 폴링 쓰레드와 클라이언트의 다중 요청을 처리.

하는 쓰레드 풀이 추가되어 있다 폴링쓰레드는 소켓 풀로부터 데이터를 갖고 있는 소켓을.

선택하여 쓰레드 풀에 할당하게 된다 각 쓰레드는 데이터를 갖는 소켓의 요청을 한번만 처.

리하고 처리 완료 후 즉시 소켓 풀로 해당 소켓을 반환한다 나머지 소켓들도 등록된 순서, .

대로 선택된다.

Page 57: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 57 -

이 모델은 단일 쓰레드 모델과 마찬가지로 연결 수에 영향을 받지 않고 단순 다중 쓰레드,

모델처럼 다중 요청을 처리할 수 있다 또한 쓰레드 풀의 용량을 조절함으로써 서버 자원의.

사용량을 제어할 수도 있다.

폴링 쓰레드에는 소켓 버퍼 가 존재한다 쓰레드 풀 내분의 쓰레드가 모두(socket buffer) .

사용중이 경우 폴링 쓰레드도 공전상태에 놓일 수 있다 그러나 소켓 버퍼의 도움으로 폴, . ,

링 쓰레드는 쓰레드 풀에 공급할 충분한 수의 소켓을 확보하는 작업을 멈춤 없이 지속할 수

있다.

그림 다중 쓰레드 소켓 폴링 모델< 2-6>

Page 58: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 58 -

다 자바에서 소켓 폴링 구현)

에는 소켓 폴링을 구현하는데 필요한 함수가 제공되지 않으나 몇 가지 함JDK 1.3 select() ,

수를 조합하여 이를 모방할 수 있다 자바언어에서 은 언어의 파일 정. InputStream C/C++

의자 와 유사한 역할을 한다 네트워크 장치를 포함한 외부 장치로부터 전송(file descriptor) .

되는 모든 데이터들은 이곳을 통하여 전달된다 에는 현재 수행 흐름을 방해하. InputStream

지 않고 한번에 읽을 수 있는 데이터의 양을 바이트 단위로 알려주는 이라는 함available()

수가 제공된다 만약 읽어 들일 데이터가 없는 경우에는 을 반환하고 그렇지 않은 경우에. 0 ,

는 이 아닌 해당 데이터의 크기를 반환한다 이러한 특성을 이용하여 와 유사한 기0 . select()

능을 구현할 수 있다.

그림 소켓 폴링 모델과 자바 예제코드< 2-7>

Page 59: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 59 -

그림 은 단순화한 소켓 폴링 모델과 자바 코드 예제이다 먼저 객체로< 2-7> . ServerSocket

부터 클라이언트 소켓 객체가 만들어지고 다시 소켓객체로부터 객체를 얻을, InputStream

수 있다 이러한 은 컨테이너 클래스 인 배열이나 연결 리스트. InputStream (container class)

에 저장되어 소켓 풀을 형성한다 폴링 쓰레드는 함수를 이용하여(linked List) . available()

소켓 풀에 저장된 을 조사한다 만약 읽을 데이터가 존재한다면 해당InputStream .

의 레퍼런스를 쓰레드나 쓰레드 풀에 할당하여 연산을 수행하게 된다InputStream read() .

이 연산을 수행하는 동안에는 폴링 쓰레드의 조사 대상에서 제외되도록 해당read()

를 상태로 설정하여 중복할당을 막도록 한다InputStream “busy” .

라 시뮬레이션)

본 연구에서는 세가지 모델에 대하여 각각 클라이언트 수 메시지의 길이 그리고 쓰레드, ,

풀의 용량을 변화하며 실험을 수행하고 그 수행 완료시간을 결과값으로 기록하였다 각각, .

의 실험에 기본적으로 사용된 인수는 다음과 같다.

기본 실험 인수

클라이언트수

메시지수

메시지 길이

쓰레드풀 용량

: 100

: 100

: 1024(char)

: 1000

동작 환경

OS : Windows XP Professional

CPU : P-4/1.2 /640M㎓

JVM : JDK 1.3.1

Page 60: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 60 -

클라이언트 수(1)

그림 은 클라이언트 수를 변화에 따른 수행 시간 로그값 결과이다 단일 쓰레드 소< 2-8> ( ) .

켓 폴링의 경우 클라이언트 수가 일 때 가장 좋은 결과를 냈으나 나머지 실험에서는 모두1

나머지 두 경우보다 안좋은 결과를 보였다 단순 다중 쓰레드 모델과 다중 소켓 폴링 모델.

의 경우 유사한 결과를 보였으나 측정 데이터를 비교할 경우 다중 소켓 폴링 모델이 약간

더 좋은 결과를 보이고 있다.

그림 클라이언트 수 변화에 따른 수행시간< 2-8>

Page 61: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 61 -

메시지 길이(2)

그림 는 메시지 길이 변화에 따른 수행 시간 로그값 결과이다 본 실험에서는< 2-9> ( ) . 512,

문자로 변화하였으나 세 모델의 성능에는 별다른 영향을 미치지 않는1024, 2048, 4096

다.

그림 메시지 길이 변화에 따른 수행 시간< 2-9>

소켓 폴링 모델의 쓰레드 풀 용량(3)

그림 은 다중 쓰레드 소켓 폴링 모델의 쓰레드 풀 용량 변화에 따른 평균 쓰레드< 2-10>

사용량과 수행 시간 결과이다 비교를 위하여 다중 쓰레드 모델의 쓰레드 풀 용량을 으. 100

로 고정시키고 측정한 결과가 축과 평행하게 나타나있다x .

Page 62: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 62 -

그림 쓰레드 풀의 용량 변화에 따른 수행시간< 2-10>

그림에서 평균 쓰레드 사용량의 경우 해당 쓰레드 풀의 용량과 거의 유사한 결과를 보이고,

있다 이는 쓰레드 풀의 용량을 거의 다 사용함으로써 할당된 자원을 효율적으로 사용하고.

있다는 것을 알려준다 여기에서 흥미로운 점은 쓰레드 풀의 용량이 인 시점부터 단순 다. 20

중 쓰레드 모델의 결과와 거의 유사하거나 더 좋은 결과를 보여준다는 것이다 실험 결과에.

서는 의 쓰레드 풀 용량을 갖는 다중 쓰레드 소켓 폴링이 모델 의 쓰레드 풀 용량을30 100

갖는 단순 다중 쓰레드 모델과 동일한 성능을 보여주고 있다.

Page 63: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 63 -

마 결론)

소켓 폴링은 여러 프로그래밍 언어에서 소켓 서버를 구현하는데 사용되는 기법이다 그러나.

단일 쓰레드 소켓 폴링 모델의 경우 처리중인 클라이언트의 요청이 완료될 때까지 많은 클,

라이언트가 기다려야 하므로 요구환경에 따라서 그 사용이 제한될 수밖에 없다.

다중 쓰레드 소켓 폴링 모델의 경우 단순 다중 쓰레드 모델과 대등한 결과를 보이나 쓰레,

드 풀의 사용 효율 측면에서 월등한 성능을 보인다 이러한 실험 결과를 바탕으로.

서버의 소켓 네트워크 모듈에 단순 다중 쓰레드 모델과 함께 다중 쓰레드MoIM-Message

소켓 폴링 모델을 추가적으로 구현하여 성능향상을 도모하였다.

신뢰성보장 메시지 전송4.

는 메시징 클라이언트와 메시지 시스템의 단절로 인한 메시지 손실을 막기MoIM-Message

위하여 신뢰성보장 메시징 기능을 제공한다.

가 개요.

가 제공하는 신뢰성보장 메시징 기능은 송신자측과 수신자측 요구에 따라MoIM-Message

와 의 두 가지 경우로 나누어진다Persistent Durable .

기능1) Persistent

송신자측 요구에 의한 신뢰성보장 메시징 기능으로 송신자는 자신이 보낸 메시지가 메시징

시스템 혹은 수신 클라이언트 시스템에 장애가 발생하더라도 반드시 수신자에게 전송됨을

보장하는 기능이다 기능의 메시지 전송 프로토콜은 그림 와 같다. Persistent < 2-11> .

Page 64: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 64 -

그림 기능< 2-11> Persistent

메시지를 전송하는 경우 송신측 응용프로그램 에서 전송한 메시지가Persistent , ( 1)

에 성공적으로 전달되면 일단 의 영속적인 저장소MoIM-Message MoIM-Message

에 저장하고 이를 수신측 응용프로그램 에 전달하는 하도록 한다 만(persistent storage) ( 2) .

약 송신측에서 보낸 메시지가 통신 장애 또는 네트워크 분할 등으로 수신측에 전송되지 않,

았다면 그림 와 같이 서버는 수신측에 메시지를 재전송하여 반드< 2-12> MoIM-Message

시 수신측에 전달되도록 한다.

그림 수신자측에 장애가 발생한 경우 메시지 재전송< 2-12>

Page 65: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 65 -

기능2) Durable

기능은 수신자측 요구에 의한 신뢰성보장 메시징 기능으로 수신자는 자신 수신자Durable ( )

시스템에 장애가 발생하더라고 반드시 자신 수신자 에게 해당 메시지의 전송 보장을 요구하( )

는 기능이다 기능의 메시지전송 프로토콜은 그림 와 같다. Durable < 2-13> .

그림 기능< 2-13> Durable

수신자측이 기능을 제공받기 위해서는 로 에Durable Durable Subscribe Publish/Subscribe

등록한다 수신자측 요구에 따라 송신측 응용프로그램 이 전송한 메시지를 수신측 응용프로. ( 1) (

그램 에 반드시 전송함을 보장하기 위하여 서버는 송신측이 전송한 메시2) MoIM-Message

지를 영속적인 저장소에 저장한다 을 등록한 수신측이 성공적으로 메시지를 수신하. Durable

면 는 저장된 메시지를 삭제할 수 있다 과 의 차이점은MoIM-Message . Durable Persistent

는 송신측에서 보낸 메시지를 영속적인 저장소에 저장한 후 응답신호를 보내고Persistent

에서는 그림 과 같이 메시징 서버는 응답신호를 보낸 후 송신측에 보낸 메Durable < 2-21>

시지를 영속적인 저장소에 저장 한다는 점이다 따라서 인 경우 송신자측에 응답신. Durable

호를 보낸 후 영속적인 저장소에 저장하기 전에 서버에서 장애가 발생하MoIM-Message

는 경우에는 메시지 손실을 초래할 수 있다.

Page 66: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 66 -

나 장애처리.

와 의 신뢰성보장 메시징 기능을 제공하기 위하여 는 장Persistent Durable MoIM-Message

애 처리 기능을 제공한다 에서 고려하는 장애는 네트워크 장애 클라이언. MoIM-Message ,

트 장애 서버 장애가 있다 네트워크 장애는 서버와 클, MoIM-Message . MoIM-Message

라이언트 사이의 통신이 단절된 경우를 의미하고 클라이언트 장애는 기능과 관련Durable

이 있는 것으로 메시지를 수신하고자 하는 클라이언트가 메시지 수신 기능이 동작하지 않은

경우를 의미한다 서버 장애는 시스템 환경 장애의 일종으로. MoIM-Message

서버가 동작하는 컴퓨터 시스템에 고장이 발생한 경우를 의미한다MoIM-Message .

장애 처리 기능의 목표는 이러한 장애로 인하여 메시지가 수신측에 전달되지 못한 경우 해

당 메시지를 재전송하는 것이다 즉 는 메시지를 네트워크 장애. , MoIM-Message Persistent

혹은 수신 클라이언트 장애가 발생하더라도 반드시 수신측에 메시지 전송을 보장해야 한다.

뿐만 아니라 장애가 발생하기 전 수신 클라이언트가 기능을 요구했다면 클라이언, Durable

트 장애 발생 후 재접속하면 해당 수신 클라이언트에게 전송되어야 하는 메시지를 재전송,

한다 따라서 는 영속적인 저장소에서 메시지를 검색하여 수신측에 재전송. MoIM-Message

하는 장애 처리 기능이 필요하다.

Page 67: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 67 -

클라이언트 장애1)

서버에 접속하는 클라이언트가 접속 중단된 상태를 의미한다 특히 클라MoIM-Message . ,

이언트 장애는 기능과 관련이 있는 것으로 기능을 요구한 클라이언트가Durable Durable

접속되지 않은 동안 자신에게 전달되어야 하는 메시지가 있으면 재 접속시 전송 받을 수 있

는 기능을 제공한다 따라서 클라이언트가 재 접속 하는 경우 다음의 두 가지 기능을 지원.

한다 가 해당 클라이언트가 전달 받지 못한 메시지의 유무 검사 기능. )

나 가 에 해당하는 메시지가 존재하는 경우 재전송 기능) )

네트워크 장애2)

서버에 접속하는 클라이언트가 네트워크 장애로 인하여 일시적으로 접속MoIM-Message

중단된 상태를 의미한다 네트워크 다시 연결된 경우 접속되지 않은 동안 전달되어야 하는.

메시지를 전송 받을 수 있는 기능을 제공한다 따라서 네트워크가 다시 연결되Persistent .

면 클라이언트 상애 시와 동일한 기능이 필요하다.

서버 장애3) MoIM-Message

서버에 장애가 발생하여 메시징 기능을 수행할 수 없는 경우를 의미한다MoIM-Message .

다음은 본 신뢰성보장 기능에서 다루는 서버 장애 복구 범위를 정의한다MoIM-Message .

Page 68: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 68 -

가 시스템 고장 회복만을 다룬다) .

나 의 영속적인 저장소에 저장된 메시지만 복구한다 즉 클라이언트가 메) MoIM-Message . ,

시지를 전송한 후 서버의 영속적인 저장소에 저장되기 전, MoIM-Message

서버에 장애가 발생한 경우 해당 메시지는 회복할 수 없다MoIM-Message , .

다 서버 장애 고장 회복은 근본적으로 영속적인 저장소에 저장된 정보만) MoIM-Message

을 이용하며 클라이언트와의 상호작용 없이 자체적으로 복구한다, .

라 회복 후 자동적으로 클라이언트와의 재접속을 시도하지만 대부분의 경우 클라이언트가) ,

재시도하는 작업이 필요하다 다만 클라이언트는 회복시 재시도 이외의 특별한 작업을 수. ,

행하지 않는다.

다 설계 및 구현.

는 가지 의 신뢰성보장 메시징 기능을 제공하기 위MoIM-Message 2 (Persistent, Durable)

하여 클라이언트 송신 클라이언트 로부터 전송 받은 메시지를 영속적인 저MoIM-Message ( )

장소에 저장한다 영속적인 저장소는 시스템장애 혹은 네트워크 장애로 인하여.

클라이언트 수신 클라이언트 에게 제대로 전송되지 못한 메시지의 재전송MoIM-Message ( )

을 위하여 접근되는 영속적인 데이터 저장소를 의미한다 따라서 본 신뢰성보장 메시징 기.

능의 구현목표는 장애가 발생하기 이전에 보내진 메시지들을 영속적인 저장소에 저장된 메

시지 로그를 이용하여 수신 클라이언트에게 재전송하는 것이다.

는 메시지를 저장한 메시지 로그 와 메시지를 반드시 수신해야MoIM-Message Persistent " "

하는 클라이언트 정보를 저장한 클라이언트 로그 기능을 요구한 클라이언트 정" ", Durable

보를 저장한 클라이언트 로그 그리고 목적지 정보를 저장한 목적지 로그 를 제"Durable ", " "

공하고 이를 이용하여 서버 시스템 장애 및 네트워크 장애 발생 시 회복MoIM-Message

작업을 진행한다 성공적으로 회복되면 수신측에 전달되지 못한 메시지가 재전송된다. .

Page 69: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 69 -

메시지 로그1)

메시지의 전송 순서를 부여하기 위하여 로그 일련 번호 를(Log Sequence Number: LSN)

사용한다 또한 메시지 로그는 메시지 식별자 메시지 객체 수신 클라이언트 수를 저장하는. , ,

필드 등을 포함한다 단 수신 클라이언트수는 수신자가 하나로 고정되는. , Point-to-Point

메시지인 경우에는 이 저장되고 인 경우에는 메시지 전송 시 등록된'1' Publish/Subscribe

클라이언트 수가 저장된다Durable .

클라이언트 로그2)

클라이언트 장애 혹은 네트워크 장애 발생 후 재 접속시 전송해야 하는 메시지 정보를 저장

하는 것으로 클라이언트 식별자 메시지 식별자를 저장하는 필드 등을 포함한다 특정 클라, .

이언트가 재접속하면 클라이언트 로그에서 해당 클라이언트에게 재전송되어야 하는 메시지

정보를 분석하고 실제 메시지 객체는 메시지 로그를 통해서 접근할 수 있다.

클라이언트 로그3) Durable

클라이언트 정보를 기록한 로그이다 메시지가 전송되면 해당Durable . Publish/Subscribe

메시지의 목적지에 클라이언트가 등록되어 있는지를 클라이언트 로그를Durable Durable

통하여 검사한다 만약 클라이언트가 있으면 해당 클라이언트 정보와 메시지 식별. , Durable

자가 클라이언트 로그에 추가된다.

Page 70: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 70 -

클라이언트 로그를 메시지가 전송될 때마다 접근하는 것은 부Durable Publish/Subscribe

하가 크기 때문에 구현에서는 클라이언트로그의 복사본을 메모리에 생성하고 해당Durable

작업을 한다 따라서 새로운 클라이언트 발생하면 클라이언트 메모리 복. Durable Durable

사본과 영속적인 저장소의 로그를 동시에 갱신하는 작업이 필요하다 또한. MoIM-Message

서버 장해 복구시 클라이언트 로그를 접근하여 메모리에 다시 복사하는 작업이 필Durable

요하다.

목적지 로그4)

목적지 정보를 저장하는 것으로 목적지 식별자와 큐인지 토픽인지 목적지 형태를 저장하는

필드로 구성된다 이는 서버 장애 복구시 필요한 목적지 생성에 필요한 정. MoIM-Message

보이다.

구현5)

그림 는 전체 시스템 구조 및 신뢰성보장 모듈의 클래스 다이아 그램으로< 2-14>

와 는 인터페이스의 구현 클래스이다MemoryManager DBManager ReliableLayer .

는 기본엔진과 신뢰성보장 모듈간의 인터페이스를 담당한다ReliableLayer MoIM-Message .

기본 엔진 내의 개체는 메시지와 같은 신뢰성보장과VirtualClientBroker(VCB) Persistent

관련된 메시지를 에게 넘기며 는 혹은ReliableLayer , ReliableLayer DBManager

를 통하여 해당 메시지를 저장한다 또한 재전송이 필요한 메시지에 대한MemoryManager .

요청을 하게 되면 저장된 메시지를 검색하여 전송한다 표 는 신뢰성보장 메시징 기. < 2-9>

능 관련 주요 클래스를 설명한다.

Page 71: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 71 -

그림 신뢰성보장 모듈 구조도< 2-14> MoIM-Message

표 신뢰성보장 메시징 기능 관련 주요 클래스< 2-9>

Class Name 설명

ReliableLayer신뢰성보장 메시징 기능에 관련된 인터페이스를 정의한 클래스

DBManager 데이터베이스 영속적인 저장소 클래스

MMSCreateStore 영속적인 저장소 테이블 생성

MMSDropStore 영속적인 저장소 테이블 삭제

ReliableMessage 영속적인 저장소 저장할 로그 생성 및 메시지 검색

PersistentMsgStore메시지 정보를 기록한 데이터베이스 테이블 및 관련메소드 구현 클래스

ClientInfoStore메시지를 수신할 클라이언트 정보와 메시지 식별자를저장한 데이터베이스 테이블 및 관련 메소드 구현 클래스

DurableClientInfoStore 클라이언트 로그 구현 클래스Durable

DestinationInfoStore 목적지 로그 구현 클래스

Page 72: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 72 -

그룹통신5. MoIM-Message

가 개요.

그룹통신은 기본 목표인 수신자들간의 일관성 보장을 위하여MoIM-Message ,

통신 모델의 다중통신과 연동하면서 수신자 리스트를MoIM-Message Publish/Subscribe ,

관리하고 상태전송과 다중전송 등의 그룹 메시징을 지원한다atomic .

중앙 집중형 구조의 메시징 미들웨어는 하나의 버퍼로 메시지가 집중되는 모델로서 그 단,

일 버퍼상의 메시지 동기화는 불가피하여 상호간의 인과관계가 없는 메시지를 비롯한 모든

메시지가 동기화 되며 전순서화 된다 이러한 동기적 실행 모델, . (synchronous execution

은 구현이나 이해가 단순한 반면 다른 멤버의 처리성능이나 통신 속도에 영향을 받model)

는다는 한계가 있다 따라서 그룹통신 기능은 그룹 멤버간의 일관성을 보. , MoIM-Message

장하는 한도에서 병렬 수행을 도모한다.

의 컴퓨팅 환경인 모바일 인터넷 환경에서는 네트워크단절 및 복구가 빈번MoIM-Message

하게 발생한다 서버와 연결이 단절된 멤버는 타 멤버와의 일관성을 보장할 수 없으므로 멤.

버 리스트로부터 강제 탈퇴 된다 그 문제 멤버가 네트워크가 복원될 때 그룹에 재참여. ,

할 수 있도록 지원한다.

나 그룹통신의 구조. MoIM-Message

그룹통신 기능은 개의 요소MoIM-Message 4 -GCSManager, GroupManager, GCSTopic,

로 구성되어 있다GCSMember - .

Page 73: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 73 -

1) GCSManager

엔진과의 인터페이스를 담당한다 그룹통신과 관련된 모든 메시지를 기본MoIM-Message .

엔진으로부터 전달 받아 해당 그룹의 로 넘긴다GroupManager .

2) GroupManager

각 그룹의 전반적인 그룹통신 기능을 관할하는 개체로서 지정 그룹의 정보 그룹 속성 수신, ( ,

자 멤버 리스트 그룹 버전 를 관리하며 개체와 일대일 대응된다, ) , GCSTopic .

3) GCSTopic

각 그룹을 대상으로 하는 메시지들을 버퍼링하기 위한 자료구조로서 메시지의 다양한 순서

화 요구 순서화 무시 전순서화 를 지원한다( , FIFO, ) .

4) GCSMember

서버와 응용과의 인터페이스를 담당한다 그룹통신 응용은MoIM-Message . GCSMember

인터페이스를 통하여 서버와 메시지를 보내고 받는다MoIM-Message .

아래 그림 은 기본 엔진과 그룹통신 기능 구성요소들간의 관계를< 2-15> MoIM-Message

나타내고 있다.

Page 74: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 74 -

그림 그룹통신 구조도< 2-15> MoIM-Message

다 설계 및 구현.

수신자간 일관성 보장1)

그룹통신 기능은 수신자들간의 일관성을 보장하기 위하여 수신자들로 구성MoIM-Messaga

된 그룹의 멤버쉽을 관리하고 그룹 메시징을 지원한다.

그룹통신이 관리하는 멤버쉽 정보는 수신자 리스트들과 그룹 버전으로 구MoIM-Message

성된다 멤버쉽 정보가 갱신 되는 경우는 클라이언트의 명시적인 참여 탈퇴 요청을 접수하. /

거나 문제 멤버를 모니터링 할 경우이다 모바일 인터넷 환경에서는 네트워크 단절 및 복구.

가 빈번하게 발생하는데 서버와 서버와 연결이 단절된 멤버는 다른 멤버들과의 일관성을,

보장할 수없으므로 이 문제 멤버를 수신자 리스트로부터 강제 탈퇴시켜야 한다.

Page 75: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 75 -

그룹통신은 그룹 멤버쉽이 변경될 때마다 멤버들에게 변경사실과 새로운MoIM-Message

멤버쉽 정보를 멤버들에게 통보해 주는데 멤버들은 복제 데이터의 일관성을 보장할 수 있,

는 수신자 리스트를 예측할 수 있다 멤버쉽 정보 내의 그룹 버전은 네트워크 복원 후 문제.

멤버가 보낼 메시지를 여과하기 위하여 사용된다 응용이 존재하지 않는 그룹에obsolete .

참여하고자할 때는 새로운 그룹이 자동 생성되며 그룹의 마지막 멤버가 그룹으로부터 탈퇴.

한다면 해당 그룹은 자동 소멸된다 그룹의 속성은 그룹을 생성한 첫번째 멤버 응용이 지정.

한 값으로 결정된다.

그룹통신 기능의 멤버쉽 변경 과정은 멤버쉽 정보가 변경될 때마다 기존MoIM-Message

멤버들에게 변경 사실을 통보하고 변경 이전에 서버에 도착했지만 아직 전달 못한 메시지,

들을 응용에게 뿌린 다음 새로운 멤버쉽 설치 메시지를 멤버들에게 전달한다 멤버쉽(flush) .

변경을 통보 받은 멤버들은 다른 멤버들의 수신여부와 관계가 있는 메시지나 전순atomic

서화를 요구하는 메시지를 송신할 수 없다.

그림 는 일반적인 멤버쉽 변경 과정을 설명하고 있으며 그림 와 그림< 2-16> , < 2-17> <

은 첫번째 멤버의 참여로 인한 그룹 생성과정과 마지막 멤버의 탈퇴로 인한 그룹 소2-18>

멸과정을 설명한다.

Page 76: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 76 -

그림 멤버쉽변경 요청할 때 와 응용과의 관계< 2-16> MoIM-Message

그림 첫번째 멤버가 참여 요청할 때 기본엔진과 그룹통신 구성요소간의 관계< 2-17>

Page 77: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 77 -

그림 마지막 멤버가 탈퇴할 때 기본엔진과 그룹통신 구성 요소간의 관계< 2-18>

그룹통신은 뒤늦게 참여하는 멤버와 기존 멤버들간의 데이터 일관성을 위MoIM-Message

하여 새로운 멤버에게 현재 멤버들의 그룹 공동 데이터를 전송하는 상태 전송 옵션을 지원

한다 상태 전송 기능은 새로이 참여하는 멤버뿐만 아니라 네트워크 단절로 강제 탈퇴 되. ,

었던 문제 멤버가 네트워크가 복원 후 재참여 하고자 할 때도 단절 후 전송된 메시지들을

전송해주는데 의 기능을 이용한다 상태 전송 속성, MoIM-Message durable subscription .

을 가진 그룹에 새로운 멤버가 참여 요청을 했다면 서버는 기존 멤버 중 가장 먼저 등록한,

멤버에게 현재 응용들이 가지고 있는 공통의 데이터를 요청하고 그 기존 멤버가 반환한 데,

이터를 새 멤버에게 전달해준다.

그림 은 상태전송이 이루어지는 과정을 설명한다 그림 은 멤버쉽이 변경될< 2-19> . < 2-20>

때 서버 내부의 각 그룹통신 관련구성 요소들이 상호 작용하는 과정을 설MoIM-Message

명한다 그림에서 상태전송 그룹속성을 지원하는 그룹에 새 멤버가 참여 요청을 한다면.

는 멤버들에게 멤버쉽 변경 통보 메시지를 보냄과 동시에 기존 멤버 중 가GroupManager

장 먼저 등록한 멤버에게 현재 응용들이 가지고 있는 공통의 데이터를 요청한다.

Page 78: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 78 -

즉 와 과정에서 상태 정보 요청 메시지를 함께 보낸다 멤버쉽 변경 통보 메시지는, (4) (5-1) .

의 마지막 메시지 정보를 담고 있는데 상태 정보요청을 받은 멤버는 모든 를 다flush , flush

받았음을 확인하면 현재 응용의 공통상태 정보를 와 를VirtualClientBroker GCSManager

경유하여 에게 보고한다 는 그 데이터를 새로 참여하는 멤버GroupManager . GroupManager

에게 전달한다.

그림 상태전송 지원 그룹으로 참여할 때 와 응용과의 관계< 2-19> MoIM-Message

Page 79: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 79 -

그림 멤버쉽 변경할 때 기본엔진과 그룹통신 구성요소간의 관계< 2-20>

그룹통신은 멤버간의 합의가 필요할 때를 지원하기 위하여 메시지를 보내MoIM-Message

면서 예상했던 모든 수신자들로 전달이 보장이 될 때만 유효한 다중전송 옵션을 지atomic

원 한다 메시지를 받은 수신멤버들은 서버로부터의 확인이 도착할 때까지 그 메시. atomic

지를 응용으로 전달하지 않는다 그룹 통신 모듈은 모든 수신자들로부터 메시지에. atomic

대한 을 수집하였을 때 다중전송의 성공을 알리는 확인 메시지를 멤버들에게 전ACK atomic

한다 수신 멤버들은 서버로부터 그 다중전송에 대한 확인 메시지를 받은 후에야 그. atomic

메시지를 응용에게 전달한다 그림 는 다중전송 메시지를 포함한 그atomic . < 2-2l> atomic

룹 응용 메시지가 를 통하여 멤버들에게 전달되는 과정을 설명하고 있다MoIM-Message .

그림 는 응용이 그룹으로 보낸 메시지가 서버 내부에서 각 그룹통< 2-22> MoIM-Message

신 관련 구성요소를 경유하여 멤버들에게 전달되는 과정을 설명한다.

Page 80: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 80 -

그림 그룹응용메시지 송수신시 와 응용과의 관계< 2-21> MoIM-Message

그림 그룹응용메시지 송수신시 기본엔진과 그룹통신 구성 요소간의 관계< 2-22>

Page 81: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 81 -

병행 처리 지원2)

그룹통신 기능은 중앙 집중적 메시징 서버에서 발생하는 멤버간의 네트워MoIM-Message

크 또는 프로세스 성능 의존성을 제거하기 위하여 다중 스트림 메시지 버퍼를 채용함으로,

써 서로 인과관계가 없는 메시지들을 병행 처리한다 즉 그룹이 순서화 무시를 허용하는. , ' '

속성을 가지고 있다면 인과관계가 없는 메시지들을 다수의 스트림에 분산 버퍼링한다 메시.

지들간의 순서화는 같은 스트림 내의 메시지들간에서만 의미가 있다 순서화 무시를 허용. ' '

하지 않는 그룹의 모든 메시지는 단일 스트림에서 전순서화된다.

순서화 무시를 허용하는 그룹의 송신 응용은 메시지를 보낼 때 가지의 순서화 요구수준' ' 3

순서화 무시 전순서화 중 하나를 지정할 수 있다( , FIFO, ) .

전달순서에 무관한 메시지인 순서화 무시.●

송신자가 보낸 메시지에 대하여 전후 순서화 보장을 요구하는 순서화FIFO●

모든 수신자에서 보낸 순서대로 그리고 모든 멤버에게 같은 순서로 같은 순서로 처리할●

것을 요구하는 전순서화

멤버 응용이 보내는 메시지는 순서화 요구수준 멤버 식별자와 그 멤버상의 순서번호를 동,

반하는데 그룹통신 기능은 이 값들과 서버로의 도착 순서를 기준으로 메, MoIM-Message

시지간의 순서화를 수행한다 순서화 무시를 요구한 메시지는 임의의 처리율 높은 스트림에.

저장되며 순서화를 요구한 메시지는 그 송신자에게 할당된 특정 스트림에 저장하여, FIFO

그 송신자가 보낸 메시지들간의 전후관계 순서화를 보장한다 전순서화를 요구한 메시지는.

주스트림에 저장되어 모든 수신자들에게 동일한 순서로 하나씩 전달된다.

Page 82: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 82 -

빈번한 단절 극복3)

모바일 인터넷 컴퓨팅 환경에서는 통신 단절이 빈번하게 발생하는데 그룹 통신 멤버 응용.

간의 일관성 유지를 위해서는 서버와 통신이 단절된 문제 멤버를 멤버 리MoIM-Message

스트로부터 제거해야 한다 그러나 모바일 환경에서는 단절 후 바로 네트워크 복원이 되는.

경우 또한 빈번하다 즉 강제적으로 탈퇴된 문제 멤버가 그룹에 재 참여할 가능성이 크며. , ,

심지어는 모니터링 후 멤버쉽 변경 도중에 문제 멤버와의 연결이 복구될 가능성이 크다.

그룹통신은 재참여 속성을 가진 그룹에 문제 멤버가 복원 후 재 참여할MoIM-Message

때 의 기능을 활용하여 통신 단절 기간동안 보내진, MoIM-Message durable subscription

메시지들을 전달함으로써 타 멤버들과의 일관성을 유지한다 또한 서버와 단절된 문제 멤, .

버를 강제 탈퇴 시키는 멤버쉽 변경 통보 메시지를 보낸 후 새 멤버쉽 설치 메시지를 보내,

기 이전에 서버와 문제 멤버가 재연결 된다면 일시적으로 단절된 멤버를 멤버쉽으로부터,

강제 탈퇴 시키고 다시 참여 시키는 무의미한 비용을 줄이기 위하여 이전 멤버쉽 상태에서,

한다resume .

그룹통신 모듈 주요 클래스4)

아래 표 은 그룹통신 기능의 주요 클래스들을 나타낸다< 2-10> MoIM-Message .

Page 83: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 83 -

표 그룹통신 기능 관련 클래스 설명< 2-10> MoIM-Message

클래스명 설명

클라이언트측

MMSMessageProsumeerImpl

멤버 식별자 송수신을 위한 설정 값들, , Session정보와 정보 등을 담은 객체Destination

MMSGCSMember그룹통신 기능을 사용하고자 하는MoIM-Message

응용이 와 연결하기 위해 생성하고MoIM-Message사용하는 객체.

서버측GCSManagerImpl

그룹통신 모듈 내 클래스로서 기본 엔진과의 인터,페이스 역할을 담당한다 기본엔진으로부터의 메시.지를 받아 해당 에게 전달한다GroupManagerImpl .

GroupManagerImpl해당 그룹의 정보를 관리하며 그 그룹에 관련된,전반적인 그룹통신 메커니즘을 제어한다.

VirtualClientBroker기본 엔진 내 클래스로서 그룹통신 모듈의 인터페,이스 역할을 담당한다.

공용

GCSTopic그룹통신을 원하는 응용들이 메시지를 보내는Destination

GroupMsg그룹통신 기능에서 교환되는 모든MoIM-Message

메시지는 타입을 가진다GroupMsg .

RegularGroupMsg 응용간에 주고받는 메시지

ViewChangeNotiMsg 멤버쉽 변경 통보 메시지.

ViewInstalMsg 새 멤버쉽 설정 명령 메시지,

StateRequestMsg 상대 전송 요청 메시지

StateTransferMsg 상태 전송 메시지

ConfirmMessage를 요청한 메시지가 모든 멤버에Atomic delivery

게 성공적으로 전달되었음을 확인하는 메시지.

GroupView그룹명에 대한 멤버 리스트와 버전 정보를 담은 자료구조

GroupViewMsg 정보를 담은 메시지GroupView

관리자 도구6.

서버 관리 모듈은 에 부가적으로 제공되는 관리자용 도구로서 서MoIM-Message 2.0 GUI

버 설정 값 과 서버 관리 객체 서버에(configuration) (ConnectionFactories, Destinations),

접속한 클라이언트들의 콜백정보 및 에 등록된 비동기 수신 클라이언트 정보 등Destination

의 조회 및 관리를 위해 사용된다.

Page 84: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 84 -

서버 관리 모듈이 지원하는 기능은 다음과 같다.

구동 정지 기능MoIM-Message 2.0 /●

와 의 생성 삭제 기능Queue Topic /●

와 의 메시지 브라우징 기능Queue Topic●

또는 에 등록된 또는 의 브라우징 및 메시Queue Topic Async Receivers Subscribers●

지 모니터링 기능

서버 로깅 조회 기능●

다음은 관리자 도구를 통해 서버를 실행한 화면과 메시지 송수신 클라이MoIM-Message

언트들이 각 에 메시지를 전송하고 수신하는 과정에서 관리자 도구를 통해 클라Destination

이언트의 콜 백 정보와 비동기 클라이언트 접속 상태 및 큐 토픽에 메시지가 전송되고 등록/

된 비동기 클라이언트에게 메시지가 전달되는 상황을 브라우징한 화면들이다.

그림 초기 실행 화면< 2-23> Admin Tool

그림 은 관리자 도구인 을 실행하여 나타난 화면이다 이 화면에서< 2-23> AdminTool .

버튼을 클릭하면 서버가 실행된다"start" MoIM-Message .

Page 85: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 85 -

그림 을 이용한 서버 실행< 2-24> AdminTool MoIM-Message

그림 을 통해 큐에 전송된 메시지 브라우징< 2-25>AdminTool

Page 86: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 86 -

그림 는 서버의 큐에 메시지를 전송한 후 관리자 도구를 통해 조회한 화면이다< 2-25> .

그림 을 통해 토픽에 접속한 비동기클라이언트 브라우징< 2-26>AdminTool

그림 은 서버의 큐에 메시지를 비동기로 수신하기 위해 등록된 수신자 클라이언트< 2-26>

에게 메시지가 전달되는 과정을 조회하는 화면이다.

이처럼 서버는 관리자 도구를 통해 송 수신 클라이언트의 접속 여부 및, MoIM-Message /

메시지 전달 과정 등을 조회하여 모니터링 할 수 있는 기능을 제공한다.

Page 87: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 87 -

제 절 연구 결과3

는 소프트웨어 컴포넌트 또는 응용프로그램 사이의 통신 방법을 제공하는MoIM-Message

메시징 미들웨어로서 산업 표준인 사의 에 정의된 와 동일한 기능을 제공하며Sun JMS API

이러한 표준 를 이용하여 기업에서 활용될 수 있는 분산 응용프로그램을 보다 쉽JMS API

게 작성할 수 있도록 지원한다.

는 은행업무 항공권 예약 경매 견적 등의 다양한 응용 서비스에 적용될MoIM-Message , , ,

수 있도록 두 가지 메시지 전송 방법과 가지의 메시지 타입을 제공한다5 . MoIM-Message

가 제공하는 메시지 전송 방법 메시지 모델 은 송신자측과 수신자측이 일대 일로 메시지를( )

주고 받는 와 송신자측에서 보낸 메시지를 이 메시지에 관심 있는 모든 수Point-to-Point

신자에게 전송하는 일대다 통신 방법인 로 구성된다Publish/Subscribe .

는 제공하는 메시지타입은 기본 타입인 와 에 자바MoIM-Message Message payload String

객체를 실을 수 있는 에 자바 객체를 실을 수 있는TextMessage, payload

에 바이트 배열을 실을 수 있는 자바의 기본 데ObjectMessage, payload BytesMessage,

이터 타입을 스트림 형태로 에 실을 수 있는 및 자바의payload StreamMessage Properties

와 유사한 형태로서 의 쌍으로 데이터를 실을 수 있는 등이 있name-value MapMessage

다.

의 특징은 신뢰성보장 메시징 기능과 그룹통신 기능을 지원함에 있으며MoIM-Message ,

휴대용 전화기와 같은 클라이언트를 사용하는 무선 이동 환경을 고Pocket PC, PDA, thin

려하여 제한적인 컴퓨팅 자원 및 비싼 통신 요금으로 인한 사용자 고의 단절 네트워크 장,

애로 인한 단절 그리고 배터리 제한에 의한 단절 등이 빈번한 무선 환경에서 신뢰성보장,

메시지 전송 기능을 제공하도록 설계되었다.

Page 88: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 88 -

또한 중복 데이터베이스 그룹웨어 등CSCW(Computer Supported Cooperative Work), ,

공동의 목적을 가지고 협동 작업을 하는 응용이나 고장 감내 또는 성능 향상을 위해 자료를

공유하고 있는 응용들을 개발할 때의 발생하는 정보의 일관성 보장문제를 지원하기 위해 그

룹통신 기능이 추가되었으며 이를 통해 메시지의 수신자와 전송 결과를 예측할 수 있도록,

한다.

Page 89: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 89 -

제 장 시스템 개발3 MoIM-Sync

Page 90: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 90 -

제 장 시스템 개발3 MoIM-Sync

제 절 개요1

그림 모바일 인터넷 환경< 3-1>

년대 후반부터 무선통신 기술과 결합된 컴퓨터 통신기술이 그림 과 같은 모바일1990 < 3-1>

인터넷 환경을 만들어 내고 있으며 이에 따라 모바일인터넷 사용자가 급속히 증가하여 모,

바일 인터넷이 인터넷의 중심이 되어가고 있다 유선 인터넷에서 모바일 인터넷으로 사용자.

환경이 바뀌어감에 따라 실세계에서는 주로 개인 정보 관리, (Personal Information

에 사용되던 서브 노트북 등과 같은 휴대형 컴퓨터Management : PIM) Pocket PC, PDA,

기반의 모바일 클라이언트를 지원하는 새로운 기업 응용들에 대한 요구가 점차 높아지고 있

다 이러한 요구는 모바일 클라이언트에서 기업 정보를 접근할 수 있도록 모바일 클라이언.

트들을 기업 시스템의 범주에 포함시키게 하고 있다 본 문서에서는 이러한 새로운 응용IT .

을 모바일기업 응용이라고 한다.

Page 91: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 91 -

모바일 기업 응용들은 모바일 클라이언트의 네트워크 접속 여부와 무관하게 영속적인 기업

의 정보에 접근할 수 있어야 한다 이 때 모바일 클라이언트는 유선 네트워크의 기업 서버. ,

와 독립적으로 데이터를 갱신할 수 있기 때문에 모바일 클라이언트와 유선 네트워크에 고정

된 서버간의 데이터동기화가 필수적이다 즉 단절되어 있던 클라이언트가 무선망에 재접속.

되었을 때 클라이언트 응용에 의해 단절 중에 변경되었던 모든 응용 정보들은 서버에 전달,

되고 또한 서버에서 이루어진 모든 갱신들이 클라이언트로 보내져 양자간에 데이터를 동기

화해야 한다 한편 데이터 동기화가 모바일인터넷이라는 개방된 환경에 적용되기 위해서는. ,

개방된 혹은 표준화된 데이터 동기화 프로토콜을 따라야 한다.

는 이라는 표준화된 데이터 동기MoIM-Sync SyncML(Synchronization Markup Language)

화 프로토콜을 기반으로 한 데이터 동기화 프레임워크를 제공하는 동기화 미들웨어로서 모

바일 기업 응용을 작성하는 응용프로그래머에게 데이터 동기화를 위한 인터페이스를 제공할

뿐만 아니라 사용중인 다양한 동기화 시스템들에 대한 연동을 용이하게 해주기 위한 시스,

템이다.

제 절 연구 내용2

의 특징1. MoIM-Sync

가. SyncML + SyncStore

의 주요 구성요소로 엔진과 가 있다 엔진은 동기MoIM-Sync SyncML SyncStore . SyncML

표준인 을 구현한 엔진이고 는 자바 환경에서 동기 응용을 보다 용이하SyncML , SyncStore

게 작성할 수 있는 프레임워크이다.

Page 92: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 92 -

나 단계 구조를 통한 높은 확장성 지원. 3

기존의 동기화 응용은 휴대 단말기의 개인 정보 동기화를 목적으로 개발되었으며 하나의 서

버에 다수의 클라이언트가 접속되는 경우 서버의 부하가 가중되었으나 에서는, MoIM-Sync

라는 중간 단계를 두어 서버 부하의 증가를 최소화하였다mirror .

다 쉬운 동기화 응용 개발 지원.

는 응용 개발자들이 데이터 동기화에 대해 신경 쓰지 않고 단지 저SyncStore , SyncStore

장소에 자바 객체를 추가 삭제 변경하는 것만으로 손쉽게 동기 응용을 개발할 수 있도록 한/ /

다.

라 다양한 데이터 저장소 지원.

데이터 저장소 어댑터를 통해 다양한 저장소의 동기화 기능을 제공한다 현재.

은 세가지 형식의 어댑터를 통해 그리고MoIM-SyncML DBMS, Outlook,

파일 시스템의 동기화 기능을 제공한다 또한 단순 저장소의 데이터Windows/Linux/Unix .

의 접근뿐만 아니라 다양한 갱신 정보 추적 기법과도 연동될 수 있도록 설계 및 구현되었,

다.

마 기존의 다양한 동기화 시스템들과의 연동 지원.

는 표준을 따르는 다른 휴대 단말기 그리고 동기서버와의 동기 프로MoIM-Sync SyncML ,

토콜 뿐만 아니라 단계 구조를 통해 표준 외의 동기 프로토콜 즉 의, 3 SyncML Microsoft

사의 등과도 연동도 가능하다ActiveSync, Palm HotSync, IBMDataPropagator .

Page 93: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 93 -

의 구조2. MoIM-Sync

그림 구조< 3-2> MoIM-Sync

그림 에서 앞서 설명된 바와 같이 의 두 서브시스템인 와< 3-2> MoIM-Sync SyncStore

엔진을 보여준다 이 두 서브시스템은 하나의 시스템으로 통합되어 프로SyncML . SyncML

토콜을 사용하는 로서 동작할 수도 있고 각 시스템이 별도의 시스템으로 각자의SyncStore ,

동기화 프레임워크로 사용될 수도 있다 이때 는 자바 환경에서 동기 응용을 보. SyncStore

다 용이하게 작성할 수 있는 프레임워크이고 엔진은 동기 표준인 을 구현, SyncML SyncML

한 엔진이다.

Page 94: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 94 -

3. SyncStore

가 전체 구조.

그림 계층 구조< 3-3> SyncStore 3

는 위 그림에서 보는 것처럼 계층 구조를 가진다 이는 확장성 측면이나 기존SyncStore , 3 .

동기화 시스템과의 연동 측면에서 볼 때 기존의 계층 구조만으로는 유연성에 한계가 있기, 2

때문이다 즉 중간에 계층을 데이터 서버 와 분리시킴으로써 계. , SyncServer (data server) 3

층 구조가 갖는 유연성을 통해 가 갖는 다양한 요구사항들을 유연하게 대처할, MoIM-Sync

수 있도록 하였다 구체적인 도입 배경은 다음과 같다. .

확장성1)

클라이언트 응용프로그램에서 사용되는 자바 객체들의 각 필드는 일반적으로 데이터 서버의

상에서 여러 테이블의 레코드들에 대한 조인 연산을 통해 이루어지는 경우가DBMS (join)

보통이다.

Page 95: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 95 -

따라서 클라이언트와 서버간의 데이터 동기화는 서버측에서 복잡한 레코드의 역추출 작업을

필요로 한다 이로 인하여 동시에 다수의 클라이언트들이 서버와 동기화를 요청할 경우 서.

버측에는 부하가 크게 증가하고 결과적으로 확장성을 저해하는 병목으로 작용하게 된다, .

그러므로 본 구조에서는 계층에 모든 클라이언트 에 대한 저SyncServer SyncStore mirror

장소를 두고 필요한 레코드 역추출작업을 수행하도록 함으로써 서버측에 집중되는 부하를,

분산시키고자 하였다.

적절한 처리 시간2)

클라이언트가 직접 서버와 데이터 동기화를 하는 경우는 서버에 부하가 집중되어 처리시간

이 크게 증가하여 무선 통신의 특성상 오류가 발생할 확률이 증가할 뿐만 아니라 비싼 통신

경비를 지불해야 한다 서버의 과부하 상태가 아닌 경우에도 전술한 바와 같이 서버측에서.

발생하는 복잡한 레코드 역추출 과정으로 인해 전체 동기화 과정을 완료하는 데 소요되는,

시간은 모바일 클라이언트 입장에서 볼 때 문제가 될 수도 있다 따라서 본 구조에서는 모.

바일 클라이언드와 저장소간의 단순 중복 형태의 동기화를 제공함으로써 응용에 따mirror ,

라서는 다양한 동기화 방식에 의해 매우 효율적인 처리 시간을 보장하고자 하였다.

기존 동기화 시스템과의 연동3)

모바일 기업 응용은 보통 다양한 모바일 클라이언트 플랫폼 기업 서버플랫폼 그리고 데이,

터 전송 동기화 프로토콜들로 구성된다 따라서 본 구조에서는 중간 계층인 계/ . , SyncServer

층에 클라이언트 어댑터 서버 어댑터를 각각 두어 일종의 교량 역할을 함으로써 기. (bridge)

존의 동기화 시스템과 유연하게 연동될 수 있도록 하고자 하였다.

Page 96: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 96 -

나 세부구조.

시스템의 세부 구조에 대해 기술한다 의 선체구조에서 본 바와 같이SyncStore . SyncStore

본 구조는 계층 구조를 갖는다3 .

그림 내부 구조< 3-4> SyncStore

가정1)

클라이언트들간의 동기화는 지원하지 않는다.●

클라이언트와 서버와의 동기화 시 동기화 요청은 클라이언트만이 할 수 있다.●

모든 클라이언트 측 에 대해 각각에 상응하는 저장소가 계SyncStore mirror SyncServer●

층에 하나씩 존재한다.

계층과 계층간의 동기화는 어느 한쪽의 요청에 의해 발생하지 않SyncServer DataServer●

고 주기적으로 발생한다, .

계층과 계층간의 통신은 제한을 두지 않으나 계층과Client SyncServer , SyncServer●

계층간의 통신은 유선을 전제로 한다DataServer .

Page 97: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 97 -

의 동작2) SyncStore

응용프로그램은 가 제공하는 를 통해 객체들을 접근하고 변경할SyncStore API Reconcilable

수 있다 는 이들 객체들에 대한 영속성과 입출력을 제공하고. StoreManager , Update

는 객체들에 대한 변경 이력 을 유지 관리 한다 응용프로그램에서Monitor (update history) · .

를 통해 동기화 요청을 하게 되면 는 이 요청을 받아서SyncStore API , Synchronizer

로부터 새롭게 발생한 변경 리스트들을 얻어온 다음 프로토콜을 통UpdateMonitor SyncML

해 원격 와 동기화를 수행한다 주요 컴포넌트들에 대한 사항은 다음과 같다Synchronizer . .

다 주요 컴포넌트.

에 저장될 객체들은 응용프로그램의 일부분인 클래스에 속한다 예를 들어 개인SyncStore .

정보 관리 응용에서 명함 주소록 달력 등에 해당하는 클래스들이다 응용프로그래머는 이, , .

와 같은 클래스들로 하여금 인터페이스를 구현하도록 선언한다 이렇게 함으Reconcilable .

로써 각 클래스의 객체들이 에 정의된 함수에 의해 에 저장 관리SyncStore API SyncStore ·

될 수 있게 된다.

1) SyncStore Manager

는 지역 장치 에 대한 관리를 위한 클래스이다 이StoreManager (local device) SyncStore .

클래스는 지역 장치에 존재하는 들에 대한정보와 그들의 실제 영속 저장소의 위SyncStore

치를 유지 관리한다.

Page 98: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 98 -

2) SyncStore API

는 객체들을 저장하기 위한 경량의 중복 가능한 영속 저장소SyncStore Reconcilable

이다 클라이언트 서버 응용에서 는(lightweight replicable persistent store) . - SyncStore

클라이언트가 단절되었을 때 변경된 응용정보들을 접근하고 갱신할 수 있는 신뢰성 있고 효

과적인 메커니즘을 제공함으로써 단절 연산 기능을 갖는다 인터페이스는 응용. SyncStore

프로그램에서 를 접근할 수 있도록 하기 위한 를 제공한다SyncStore API .

3) SyncStoreUpdater

는 자신에게 저장되어 있는 객체들의 변경을 중복된 에 전달하기 위SyncStore SyncStore

해 객체들의 상태 변경 정보를 관리, ㆍ유지한다 는 로부터 객체 상. Synchronizer SyncStore

태 변경 정보를 얻어와서 원격 에서 사용되는 전송 동기화 프로토콜에 따라Synchronizer /

중복된 에게 전달한다 중복된 에서는 자신에게 저장되어 있는SyncStore . SyncStore

객체들에 대한 객체 상태 변경 정보와 전달 받은 객체상태 변경 정보를 비Synchronizable

교하여 적절히 동기화 한다 인터페이스는 이와 같이 동기화 과정에서. SyncStoreUdpater

가 에 접근하여 객체 상태 변경 정보들을 얻어내고 원격Synchronizer SyncStore ,

로부터 전달되어 온 원격 객체 상태 변경 정보를 지역 에 반영한SynChronizer SyncStore

다.

4) PersistentStoreManager

를 특정 영속 저장소 구현 방식으로부터 분리시킴으로써 가 임의의 장SyncStore SyncStore

치에서 사용될 수 있도록 하기 위해서 인터페이스를 정의하였다PersistentStoreManager .

Page 99: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 99 -

즉 영속 저장소로서 특정 파일 시스템이나 혹은 비휘발성 메모리 등이 사용된다, , DBMS,

하더라도 인터페이스를 구현한 것이면 구현 클래스에PersistentStoreManager SyncStore

서는 장치 독립적으로 영속 저장소를 접근할 수 있게 된다.

5) UpdateLogManager

객체들의 가능한 상태 변경은 삽입 갱신 그리고 삭제가 있다 이와 같은 객체Reconcilable , .

들의 상태 변경은 다수의 중복된 에서 병렬적으로 발생할 수 있으며 다수의 중SyncStore ,

복된 에 포함된 특정한 두 들의 동기화는 임의의 형태로 이루어 질SyncStore SyncStore

수 있다 이로 인해 서로 다른 중복된 에 존재하는 동일한 객체들은 서로 다른. , SyncStore

변경 이력을 가질 수도 있다 를 통해 에 존재하는 모든. UdateLogManager SyncStore

객체들에 대한 변경 이력을 로깅한다Reconcilable .

6) Synchronizer

두 개의 는 서로 협력하여 해당 호스트에 존재하는 에서 발생된 객Synchronizer SyncStore

체상태 변경 정보를 교환시켜 줌으로써 두 들이 서로 동기화 할 수 있도록 한다, SyncStore .

구체적인 동기화 프로토콜은 오직 협력하는 에게만 알려지고 공유되며 사용Synchronizer ,

자에게는 투명해야 한다.

7) SyncML

은 을 비롯한 개의 동기화 관련 회사들이 주축으로 제안한 데이터 동기화 표SyncML IBM 9

준으로 현재 수백개의 회사들이 표준을 지지하거나 지원 제품을 개발 중에 있다, SyncML .

의 목표는 업계 전반에서 사용할 수 있는 단일 데이터 동기화 방식을 제안하고 이SyncML ,

를 바탕으로 다양한 모바일 또는 일반 장치들이 서로 자신의 데이터를 동기화 할 수 있는

환경을 만드는데 있다 표준은 다양한 장치들 사이의 상호 연동을 원할하게 하기. SyncML

위해 동기 작업 중 장치 사이에 전달되는 데이터의 형식을 표준화하였고 형식은 텍스트, ,

형식의 을 기반으로 한다XML .

Page 100: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 100 -

라 그 밖의 컴포넌트들.

이벤트1) SyncStore

응용프로그램들이 동기화 과정이나 내부 동작과정에 개입하여 유MoIM-Sync SyncStore

용한 작업들을 할 수 있기 위해서는 동기화 과정이나 내부에서 발생한 주요한, SyncStore

이벤트들을 통보 받음으로써 진행과정을 모니터링 할 수 있어야 한다.

가 개요)

이벤트 모델에 기반하여 응용프로그램은 특정한 이벤트들에 대한 청취자JavaBeans ,

객체를 등록할 수 있다 이와 같이 특정 이벤트에 대한 청취자 객체를 등록함으(listener) .

로써 얻을 수 있는 이점은 다음과 같다, .

데이터 동기화의 진행 과정을 추적할 수 있다.●

데이터 저장소에서 발생한 주요 이벤트들 저장소의sync-store - open, close,●

등에 대한 이벤트 통보를 받을 수 있다flushing .

데이터 저장소에 저장되는 객체들에 대한 주요이벤트 삽입 수정 삭제sync-store - , ,●

등에 대한 통보를 받을 수 있다

나 기능)

응용프로그램들이 내부에서 발생한 주요 이벤트들에 대한 통보를MoIM-Sync sync-store

받을 수 있도록 하기 위해서 제공하는 기능들은 다음과 같다.

Page 101: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 101 -

모든 종류의 이벤트들에 대해 상응하는 청취자 인터페이스를 제공한다(1) , .

이벤트를 발생하는 객체들은 청취자 객체를 등록 해제 할 수 있는 함수를 제공(2) source /

한다.

동기화 과정에서 발생하는 이벤트들에 대한 는 객체이다(3) source Synchronizer .

동기화 중에 송신 단계 가 시작되었음을 알리는 이벤트(sending phase)●

동기화 중에 수신 단계 가 시작되었음을 알리는 이벤트(receiving phase)●

특정 단계의 일정 부분이 완료되었음을 알리는 이벤트●

송신 단계의 성공적인 완료를 알리는 이벤트●

송신 단계의 실패를 알리는 이벤트●

수신 단계의 성공적인 완료를 알리는 이벤트●

수신 단계의 실패를 알리는 이벤트●

동기화 객체에 대한 이벤트들에 대한 는 객체이다(4) source SyncStore .

새로운 객체의 삽입을 알리는 이벤트●

객체의 갱신을 알리는 이벤트●

객체의 삭제를 알리는 이벤트●

동기화 데이터 저장소에 대한 이벤트들에 대한 는 객체이다(5) source SyncStore .

저장소가 되었음을 알리는 이벤트open●

저장소가 되었음을 알리는 이벤트close●

객체의 데이터 갱신 정보들이 저장소에 되었음을 알리는 이벤트SyncStore flushing●

Page 102: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 102 -

웹 기반2) SyncStore

웹 응용이 갖는 장점은 이미 잘 알려진 사실이다 그러므로 에서도 웹(Web) . MoIM-Sync

환경에서 동작하는 에 대한 요구는 당연한 것이다 즉 웹 환경에서 를SyncStore . , SyncStore

기반으로 동기화 응용을 작성할 수 있도록 해야 한다.

가 개요)

가 웹 환경에서 동작함으로써 얻을 수 있는 장점은 다음과 같다MoIM-Sync , .

일반적인 웹 응용이 갖는 장점 즉 시간과 공간의 제약을 밭지 않는다, .●

웹 기반 시스템 관리가 가능해짐으로써 관리가 용이하다 웹 기반의 시스템과 연. legacy●

동할 수 있다.

나 기능)

이 환경에서 동작할 수 있도록 하기 위해서 제공하는 기능은 다(1) MoIM-Sync 2.0 Web

음과 같다.

를 사용하여 쉽게 웹 응용을 작성할 수 있도록 다양한 어댑터 클래(2) MoIM-Sync2.0 API ,

스들을 제공한다.

계층 구조에서 웹 응용이 위치할 수 있는 각 계층별 어댑터를 제공한다(3) MoIM-Sync 3 .

프로토콜을 기반으로 하는 동기화 프로토콜을 제공한다(4) http .

기반 동기화 프로토콜을 구현한 클래스를 제공한다(5) http Synchronizer .

웹 기반의 데이터 저장소와 연동할 수 있도록 어댑터를 제공한다(6) legacy .

Page 103: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 103 -

데이터베이스 어댑터3)

가 개요)

에서는 다양한 종류의 데이터 저장소가 데이터 저장소로 사용될MoIM-Sync sync-store

수 있도록 하기 위해서 인터페이스를 제공한다 즉 사용하고자, PersistentStoreManager .

하는 데이터 저장소를 위한 구현 클래스를 작성하기만 하면PersistentStoreManager file

기반 기반 혹은 기반으로 데이터 저장소로 사용할 수 있도록 하, memory , DB sync-store

였다 그러나 에서는 기반 데이터 저장소만을 구현하였다. , MoIM-Sync 1.0 file sync-store .

그러므로 에서는 기반 데이터 저장소를 위한 어댑터를 추MoIM-Sync 2.0 DB sync-store

가하였다.

나 기능)

에서 데이터베이스 어댑터를 제공하기 위해서 필요한 요구 기능은 다음과MoIM-Sync 2.0

같다.

를 기반으로 한다(1) JDBC .

응용에 따라 요구될 수 있는 다양한 스키마의 테이블을 지원한다(2) .

테이블의 단위의 단순 동기화뿐만 아니라 을 이용하여 생성되는 가상 테이블에 대(3) , SQL

한 동기도 지원할 수 있어야 한다.

Page 104: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 104 -

4. MoIM-SyncML

가 개요. SyncML,

다양한 모바일 장치의 등장으로 사람들은 이들 장치로부터 보다 다양한 서비스를 받을 수

있게 되었다 이러한 모바일 장치들은 사용자가 필요한 정보를 기록하고 휴대하고 다니다.

가 사용자가 필요한 시기에 저장된 정보를 제공하거나 이 정보를 전산 처리하여 사용자에, ,

게 제공하게 된다 이 장치로 인해 사용자들은 자신이 원하는 정보 및 전산 처리를 원하는.

시점에 즉시 그리고 장소에 무관하여 지원 받을 수 있게 되었다 현재 보편적으로 사용하, .

고 있는 이런 장치로는 그리고 노트북 등과 같은 휴대용 컴퓨터 차량용PDA, Pocket PC, ,

네비게이터 가전제품에 설치된 내장형 컴퓨터를 예로 들 수 있다, .

사용자들은 이런 다양한 모바일 장치로부터 다양한 정보를 장소에 무관하게 얻을 수 있는

장점을 갖게 되지만 여러 모바일 장치에 기록할 데이터를 사용자가 직접 반복하여 입력할,

필요가 있고 그들 사이의 데이터의 일치성 또는 일관성을 유지하지 못하기 때문에 사용자,

에게 제공하는 서비스의 비일관성으로 인하여 사용자의 혼란을 유발하거나 또는 휴대한 장,

비에 원하는 데이터 부재로 필요할 때 원하는 정보를 받을 수 없는 경우도 발생한다 특히. ,

현재는 여러 장치에 기록된 정보의 일관성을 전적으로 사용자의 책임이어서 한 사용자가,

사용하는 모바일 장치의 수가 증가함에 따라 각 해당 장치의 데이터의 일관성을 유지의 많

은 부담이 되고 있다 예를 들어 명함 정보를 회사 정보 시스템 개인용 노트. , desktop PC,

북 등 네가지 장치에 저장하여 사용한다고 할 때 만일 이 네 가지 장치에 저장된 명, PDA .

함 정보가 일치되지 않은 경우는 사용자의 혼란을 유발한다 이를 막기 위해서는 특정인의.

명함 정보가 변경된 경우나 새로운 명함 정보가 추가될 때마다 사용자는 일일이 이 네 장,

치에 따로 동일한 데이터를 삽입하는 번거로움이 따르게 된다.

Page 105: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 105 -

이 문제를 해결하기 위해 일부 모바일 장치는 일부 다른 컴퓨터와 자동적으로 자료를 서로

주고받아 그들 사이의 데이터 일관성을 유지하는 기능을 제공하는데 이것은 데이터 동기화,

라 불린다 데이터 동기화는 서로 독립적인 상태에서 추가 삭제 갱신된 데(synchronization) . / /

이터를 일정 시간 후에 서로의 변경 부분을 서로 주고받아 동일한 데이터를 갖도록 하는 기

술이다 데이터 동기화 기술은 기존의 데이터 전송 기술 데이터 변경 일관성 유지 기술 시. , ,

간 동기화 기술과는 여러 가지로 유사한 점은 있지만 다음과 같은 점에서 중요한 차이를 보

인다.

데이터 동기화 기술은 단순히 한 장치에서 다른 장치로 데이터를 전송하기는 기술이 아니

다 데이터 동기화 기술은 데이터 전송 기술을 바탕으로 서로 상이한 데이터를 유지하는 여.

러 장치의 데이터를 하나의 일관성 데이터를 갖도록 한다.

기존 데이터 변경 일관성 유지 기술은 데이터 동기화 기술과 유사하게 데이터 변경에 따른

일관성 상실을 막기 위해 변경된 정보를 다른 장치들에 전송하여 모든 장치들이 항상 동일

한 데이터를 유지하도록 한다 데이터동기화 기술이 이 기술과 차별되는 가장 큰 특징은 데.

이터 변경 일관성 유지 기술에서는 데이터 변경시 변경 내용이 동기에 가담하는 모든 장치

에 즉시 반영되어 사용자는 항상 일치된 데이터를 사용할 수 있는 반면 데이터동기화 기, ,

술은 사용자가 명시적으로 동기를 시키기 전까지는 데이터 변경이 해당 장치에만 반영된다

는 점이다 이로 인해 사용자는 일정 기간 일관성이 유지되지 않은 데이터를 볼 수도 있게,

된다 그러나 데이터 변경 일관성 유지 기술은 동기에 참여하는 장치들이 항상 서로 연결된.

상태에서만 동작한다는 단점과 한 장치라도 연결되지 않은 경우에는 모든 장치에서의 변경

이 허락되지 않는다는 단점을 갖는 반면 데이터 동기화 기술은 이러한 제약이 없다는 장점,

을 갖는다 데이터 동기화 기술은 이런 특징으로 장치들이 항상 연결될 수 없는 모바일 장.

치들 사이의 데이터 일관성 유지에 사용된다.

Page 106: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 106 -

앞서 언급한 바와 같이 다수의 모바일 장치가 증가함에 따라 그것에 저장된 데이터들의 동

기화의 중요성이 점차 증가하게 되었다 즉 보다 많은 모바일 장치들이 서로 자신의 데이. ,

터를 교환하여 동일한 데이터를 계속 유지할 필요가 증가하게 된다 그러나 현재 대부분의.

모바일 장치들은 다른 장치들과의 동기화를 위한 고려가 되어있지 않거나 고정된 몇 가지,

의 장치와의 동기화만을 지원하지 않는 문제가 있다 이러한 문제를 해결할 방안의 가장 걸.

림돌이 되는 것은 현재 모바일 장치들의 데이터 표현 방식 데이터전송 방식 동기 프로토, ,

콜이 서로 상이하다는 점이다 이런 문제를 해결하기 위한 방안으로 모든 모바일 장치들이.

공통적으로 사용할 수 있는 데이터표현 방식 전송 방식 동기 프로토콜에 대한 표준이 필, ,

요하였으며 이러한 표준 중 현재 가장 영향력이 큰 것이 이다, SyncML .

은 을 비롯한 개의 동기화 관련 회사들이 주축으로 제안한 데이터 동기화 표SyncML IBM 9

준으로 현재 수백개의 회사들이 표준을 지지하거나 지원 제품을 개발 중에 있다, SyncML .

의 목표는 업계 전반에서 사용할 수 있는 단일 데이터 동기화 방식을 제안하고 이SyncML ,

를 바탕으로 다양한 모바일 또는 일반 장치들이 서로 자신의 데이터를 동기화 할 수 있는

환경을 만드는데 있다 표준은 다양한 장치들 사이의 상호 연동을 원할하게 하기. SyncML

위해 동기 작업 중 장치 사이에 전달되는 데이터의 형식을 표준화하였고 형식은 텍스트, ,

형식의 을 기반으로 한다 그림 은 표준에서 제안한 엔진의XML . < 3-5> SyncML SyncML

구조 및 그것을 사용하는 응용들과의 상호 관계를 보여준다.

Page 107: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 107 -

그림 구조< 3-5> SyncML

나 지원 동기 방식. MoIM-SyncML,

에서는 다음과 같이 모두 가지의 동기화 방식을 정의한다SyncML 7 .

Two-way sync 가장 기본이 되는 동기화 방식이고 일반적으로 사용하는 동기화 방법으: ,

로 클라이언트가 자신의 노드에서 갱신된 모든 내용을 서버에게 전달하는 방식으로 동기화,

가 시작되면 서버는 전달 받은 갱신 내용으로 반영하고 다시 서버에서 발생된 클라이언트,

로 보내 클라이언트로 하여금 서버에서의 갱신을 반영토록 하는 방식이다, .

Slow Sync 클라이언트 또는 서버에서 유지하던 갱신 정보가 상실되거나 클라이언트와: ,

서버가 처음으로 동기화 할 때 사용되는 동기화 방식으로 먼저 클라이언트가 자신의 모든,

데이터를 서버로 전송하는 방식으로 동기화가 시작된다 서버는 클라이언트로부터 받은 데.

이터를 자신이 갖고 있는 데이터와 일일이 비교하여 다른 부분만을 자신의 노드에 반영하

고 클라이언트에 반영되지 않은 부분을 조사하여 클라이언트로 전송한다 클라이언트는 서, .

버에서 온 갱신을 자신의 노드에 반영한다.

Page 108: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 108 -

One-way sync from client only 기본적으로 와 동일하되 클라이언트는: two-way sync ,

자신에서의 갱신을 서버로 전송하지만 서버는 자신의 갱신을 클라이언트로 전송하지 않는,

점이 다르다.

Refresh sync from client only 클라이언트에서 자신이 갖고 있는 모든 데이터를 서버로:

전송하며 서버는 이를 무소건 모두 반영하는 방식이다, .

One-way sync from server only 이 방식은 방식과는: one-way sync from client only

정반대로 클라이언트는 자신의 갱신을 보내지 않고 서버에서만 갱신을 클라이언트로 전송,

하여 반영토록 하는 방식이다.

Refresh sync from server only 이 방식은 방식과는 반: refresh sync from client only

대로 서버가 자신이 갖고 있는 모든 데이터를 클라이언트로 보내 모두 반영하는 방식이다.

Server-alerted sync 지금까지 설명한 가지 동기화 방식은 모두 클라이언트가 동기화를: 6

시작 시키는 반면 이 방법은 서버가 동기화를 유발시키는 방식이다 서버는 동기화를 요청, .

할 때 앞서 설명한 여섯 가지 동기방식 중에서 자신이 원하는 방식을 지정할 수 있다, .

위 동기화 과정은 모두 실제 동기화에 앞서 클라이언트와 서버사이에 동기화 방식을 서로

확인하는 별도의 동기 초기화 과정을 거치기도 하고 동기 초기화 과정이 실제 동기화 데이,

터 전송시 함께 전송되는 방식이 있을 수 있다.

Page 109: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 109 -

다 동기 요청 처리 과정. MoIM-SyncML

그림 은 클라이언트 서버가 상대방으로부터 요청이 도착한< 3-6> MoIM-SyncML / SyncML

경우 처리하는 과정을 보여준다 처리과정은 기본적으로 요청한 을 파싱, . SyncML SyncML

하여 포함된 명령어를 실행하고 해당 결과를 담은 명령을 생성하고 다시SyncML Status ,

상대방에게 전달한 명령을 생성한 후 생성된 모든 명령을 메시SyncML , SyncML SyncML

지로 작성하여 반환하는 과정을 따른다.

그림 요청 처리 과정 그림 요청 처리 과정< 3-6> SyncML < 3-7> SyncML

외부에서 메시지가 도착하면 해당 노드에서 메시지를 감시하는 에 의SyncML , dispatcher

해 해당 동기 장치 에게 메시지의 처리 요청을 전달한다(synchronizer) .

Page 110: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 110 -

동기 장치는 처리 요청을 받으면 이를 파싱할 객체를 생성하여 이를 파싱SyncMLParser

하여 메시지에 포함된 명령들을 추출하여 명령 리스트 객체SyncML SyncML

를 생성한다 명령 리스트 객체는 메시지에 포함된 명령 또는 생성CommandList . SyncML

할 메시지에 포함될 명령을 순서대로 나열한 리스트이다SyncML SyncML .

메시지의 파싱이 종료되면 동기 장치는 다음으로 명령 리스트에 속한 명령을 수행SyncML

할 명령 처리기 객체 를 생성하여 명령을 처리하도록 한다CommandExecutor SyncML .

명령에 따라서 명령어 처리 중지역 노드에 있는 데이터베이스의 데이터들에 대한SyncML

추가 삭제 갱신 등이 발생될 수 있다 또한 실행된 각 명령에 대해 그 처리 결과를/ / . SyncML

알리는 명령 또는 명령 을 생성하여 출력용 명령 리스트에 추가한다Status ( Results ) .

요청된 모든 명령어 처리가 끝나면 동기 장치는 상대에게 요청할 명령을SyncML , SyncML

생성하기 위한 동기 연산자를 수행시킨다 수행되는 동기 생성기는 동기화 과정에 따라 다.

르다 동기 연산자 수행 중 지역 데이터베이스 내의 데이터들을 참조하기도 하며 생성된. ,

명령들은 이전 과정에서 생성된 출력용 명령 리스트에 차례대로 삽입된다SyncML .

명령어 생성이 완료되면 동기 장치는 메시지 생성기 객체를 생SyncML , (MessageBuilder)

성하여 출력용 명령 리스트에 속한 명령들로부터 메시지로 생성한다SyncML SyncML .

생성된 메시지는 사용 중인 트랜스포트 계층에 따라 적절한 방법으로 상대방으로SyncML

전달된다.

Page 111: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 111 -

라 주요 클래스들. MoIM-SyncML

동기 데이터베이스 클래스1)

명령어를 수행하거나 상대방에게 보낼 명령어를 생성하는 동안 지역 데SyncML , SyncML

이터베이스에 저장된 데이터를 접근하게 된다 이때 사용되는 데이터베이스는. MoIM

엔진을 사용하는 응용에 따라 달라지게 되기 때문에 보다 다양한 응용 관련 데이SyncML ,

터베이스를 보다 쉽게 엔진과 연동토록 하는 것은 엔진의 설계SyncML MoIM-SyncML

목표 중 하나이다 에서는 자바 인터페이스 기능을 이용한 동기 데이터베이. MoIM SyncML

스 인터페이스를 정의하였다 동기 데이터베이스는 엔진과(SyncDatabase) . MoIM-SyncML

연동하기 위해 필요한 인터페이스를 정의한 클래스로 을 통해 동기화 작업, MoIM-SyncML

을 수행하려면 반드시 구현해야 하는 인터페이스이다.

장치 관리자 클래스2)

엔진이 특정 응용을 위해 수행되기 위해서는 응용 개발자는 동기 데이터베MoIM-SyncML

이스 뿐만 아니라 엔진 수행에 필요한 응용 전반에 대한 정보를 제공하여야 한다 장치, .

관리자 클래스는 엔진 수행시 응용 개발자가 제공할 인터페이스 정의한다 장치 관리자에서.

정의된 인터페이스는 다음과 같다.

장치 수준의 사용자 인증 기능을 제공하는 메소드 에서는 장치 수준의 사용자 인. SyncML

증이 필요하며 실제 인증을 처리하는 것은 응용의 몫이므로 엔진은 장치 수준의, SyncML

사용자 인증이 필요한 경우 장치 관리자의 메소드를 호출하여, authenticate(String, String)

처리한다.

동기 과정 중 상대 동기 장치와의 사용자 인증을 위해 사용자 이름과 패스워드를 보낼 때,

인코딩하는 방식을 제공하는 메소드가 정의된다getCredEncoding() .

Page 112: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 112 -

지역 동기 장치에 등록된 모든 동기 데이터베이스와 자원 관리자를 접근할 수 있는 인터페

이스 는 주어진 식별자에 해당하는 동기 데이터베이스를 접근할 수 있. getSyncDatabase()

도록 하고 는 지역 동기 장치가 사용하는 자원 관리자를 접근할 수, getResourceManager()

있도록 한다.

명령 클래스들3) SyncML

은SyncML Add, Alert, Atomic, Copy, Delete, Exec, Get, Map, Put, Replace, Results,

등이 있다 에서는 이 각각의 명령에 해당하는 클Search, Sequence, Sync . MoIM-SyncML

래스가 정의되었다 에서의 모든 명령어들은 클래스로부. MoIM-SyncML SyncML Command

터 상속 받아 정의되며 정보와 정보를 포함한 명령 클래스들인, credential meta

들은AddCommand, CopyCommand, DeleteCommand, GetPutCommand, CopyCommand

클래스에서 상속 받는다 마지막으로 는 실제GenericCommand . MarkerCommand SyncML

명령에는 없지만 명령 그룹에 해당하는 명령에 포함되는 범위를, Atomic, Sequence, Sync

마크하기 위해 구현된 클래스이다.

명령어 리스트 클래스4)

명령어 리스트 클래스는 메시지에서 추출한 명령 객체들을 메시지 내의SyncML SyncML

출현 순서를 저장한 리스트 클래스이다 또한 생성 메시지에 포함될 명령어들의. SyncML

리스트로도 사용된다 정의되는 메소드로는 명령어의 삽입과 삭제 리스트에 포함된 모든. ,

명령 객체를 접근하는 나열자를 반환하는 메소드 그리고 특정 식별자를 갖는 명SyncML ,

령어 객체를 검색하거나 특정 조건을 만족하는 명령 객체를 검색하는 메소드가 제공된다, .

Page 113: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 113 -

파서 클래스5) SyncML

파서 클래스는 메시지를 파싱하여 메시지에 포함된 명령을 추SyncML SyncML , SyncML

출 내부 명령 객체로 변환하여 주어진 명령 리스트 객체에 차례대로 삽입하는 클래스이다, .

현재 엔진에서 사용하는 파서는 성능과 자원 소모를 고려하여MoIM-SyncML SyncML

인터페이스에 기반하여 구현되었고 에 기능을XML SAX(Simple Access Protocol) , SAX

자체적으로 추가한 자체적인 와idplab.util.xml.ESAXHandler idplab.util.xml.ESAXParser

클래스를 바탕으로 구현되었다.

메시지 생성 클래스6) SyncML

메시지 생성 클래스 는 앞서 언급한 파서와idplab.moim.syncml.MessageBuilder SyncML

는 정반대의 작업을 수행하는 클래스이다 메시지 생성클래스는 주어진 명령 리스트에 포함.

된 명령으로부터 메시지를 생성하는 작업을 수행한다 생성된SyncML SyncML . SyncML

메시지는 동기 장치에서 사용하는 트랜스포트 바인딩에 따라 적절한 방법으로 상대방에게

전달된다 클래스에서 제공하는 가장 기본적인 메소. idpIab.moim.syncml.MessageBuilder

드로 가 있다 이 메소드는 생성에 사용할 명령어 리스트와write(CommandList, boolean) .

생성될 메시지의 태그의 추가여부를 제거하는 논리 값을 전달한다<Final> .

명령 실행기 클래스7) SyncML

명령 실행기 클래스는 파서를 이용하여 얻어진 명령 리스트에SyncML SyncML SyncML

포함된 명령들을 차례대로 실행시키는 클래스이다 동기화 과정 중 클라이언트 또SyncML .

는 서버에 따라 명령을 처리하는 방법이 다르기 때문에 엔진에서는 클라이MoIM-SyncML

언트용 서버용 따로 제공되며 각각의 이름은, ,

와i d p I a b . m o i m . s y n c m l . C l i e n t C o m m a n d E x e c u t o r

이다idplab.moim.syncml.ServerCommandExecutor .

Page 114: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 114 -

제 절 연구 결과3

개발한 패키지는 크게 엔진과 엔진으로 구성되었다MoIM-Sync SyncML SyncStore .

엔진은 동기 표준인 을 구현한 엔진이고 는 자바 환경에서 동SyncML SyncML , SyncStore

기 응용을 보다 용이하게 작성할 수 있는 프레임워크이고 는 다음과 같은 특징, MoIM-Sync

을 갖는다.

단계 구조를 통한 높은 확장성 지원 기존의 동기화 응용은 휴대 단말기의 개인 정보 동3 :

기화를 목적으로 개발되었으며 하나의 서버에 다수의 클라이언트가 접속되는 경우 서버의

부하가 가중되었으나 에서는 라는 중간 단계를 두어 서버 부하의 증가를, MoIM-Sync mirror

최소화하였다.

쉬운 동기화 웅용 개발 지원 는 응용 개발자들이 데이터 동기화에 대해 신경: SyncStore

쓰지 않고 단지 저장소에 자바 객체를 추가 삭제 변경하는 것만으로 손쉽게 동, SyncStore / /

기 응용을 개발할 수 있도록 한다.

다양한 데이터 저장소 지원 데이터 저장소 어댑터를 통해 다양한 저장소의 동기화 기능을:

제공한다 현재 은 세가지 형식의 어댑터를 통해 그리고. MoIM-SyncML DBMS, Outlook,

파일 시스템의 동기화 기능을 제공한다 또한 단순 저장소의 데이터Windows/Linux/Unix .

의 접근뿐만 아니라 다양한 갱신 정보 추적 기법과도 연동될 수 있도록 설계 구현되었다, / .

Page 115: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 115 -

기존의 다양한 동기화 시스템들과의 연동 지원 는 표준을 따르는 다: MoIM-Sync SyncML

른 휴대 단말기 그리고 동기 서버와의 동기 프로토콜뿐만 아니라 단계 구조를 통해, , 3

표준 외의 동기 프로토콜과 의 의SyncML (Microsoft ActiveSync, Palm HotSync, IBM

연동도 가능하다DataPropagator) .

Page 116: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 116 -

제 장 결 론4

Page 117: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 117 -

제 장 결론4

본 연구에서는 모바일 인터넷 환경에서 사용자의 작업을 정확하고 일관성 있게 지원하는 기

술 개발을 목표로 모바일 인터넷 미들웨어인 을 개발하였다 모바일 인터넷 환경MoIM 2.0 .

에서 메시지 전송 시 무선망은 유선망 보다 신뢰도가 낮으며 사용자의 이동으로 이동정보

단말기들이 네트워크로부터 자주 단절되는 문제점이 있다 모바일 인터넷 미들웨어는 이러.

한 문제점을 동시에 해결해 줄 수 있는 핵심 기술이 내포된 미들웨어로써 모바일 인터넷 메

시징 미들웨어 와 모바일 인터넷 동기화 미들웨어 로 구성되(MoIM-Message) (MoIM-Sync)

어 있다.

모바일 인터넷 메시징 미들웨어●

모바일 인터넷 메시징 미들웨어는 모바일 인터넷 환경에서 기업 응용서비스가 사용하는 메

시지의 전달을 보장하는 메시징 미들웨어 이다 방식을 사용하는 이 미들웨. Hub & Spoke

어는 중앙에 메시지 중재자 역할을 하는 서버를 두고 각 시스템이 클라이언트 형태로 중앙

서버와 결합되어 각 시스템 간에 메시징 교환이 이루어진다 이는 인터넷에 친화적인 형태.

이면서 클라이언트 모듈을 최소화할 수 있는 구조로 표준 기반으로 구현되었다J2EE JMS .

그리고 참여하는 그룹 멤버들 간의 데이터 일관성을 보장하는 그룹 통신의 멤버쉽 서비스

및 그룹 메시징 서비스를 제공한다.

모바일 인터넷 동기화 미들웨어●

유ㆍ무선 인터넷 기술의 발전으로 개인용 또는 업무상 사용자가 필요로 하는 데이터가 이동

정보 단말기와 서버에 분산되어 저장될 수 있다 모바일 인터넷 동기화 미들웨어는.

표준을 기반으로 클라이언트와 서버에 분산되어 있는 데이터의 동기화를 쉽게 지SyncML

원해 주기 위한 미들웨어로써 다양한 종류의 데이터 저장소와 연동 가능하며 다양한 네트워

크 프로토콜을 통한 원격 저장소와의 동기를 지원한다 또한 다양한 무선 단말기를 포함한.

여러 플랫폼에서 구동이 가능하도록 자바 언어로 구현되었다.

Page 118: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 118 -

차년도에는 각 시스템의 기본적인 요구사항을 정의하여 모바일 인터넷 미들웨어 시제1 1.0

품을 구현하여 데이터 동기화 및 메시지 전달을 위한 기본 시스템의 동작을 검증하였다 본.

과제는 차년도에 대형과제인 차세대 인터넷 서버 기술 개발 과제의 세부과제로 포함되2 “ ”

어 당초 기간보다 개월이 단축된 개월 동안 수행되었다 차년도의 연구결과물인 모바2 10 . 1

일 인터넷 미들웨어 시제품을 기반으로 이 기간 중에는 각 시스템의 확장요구기능을 정1.0

의하고 모바일 인터넷 미들웨어 상용 시제품을 개발하여 국내에서 개최된 리눅스 엑스2.0

포 전시회에 출품했으며 산업화를 위한 기술이전을 준비하고 있다.

모바일 인터넷이 보다 일반화되면서 점차 개인 및 기업차원에서 이를 활용한 서비스에 대한

새로운 요구가 계속 창출될 것으로 전망하고 있다 그러므로 모바일 인터넷 미들웨어의 핵.

심 요소인 모바일 인터넷 메시징 미들웨어와 모바일 인터넷 동기화 미들웨어가 산업적 측면

에서 수요가 증대될 것으로 기대된다 모바일 인터넷 메시징 미들웨어는 업계 최신 표준을.

준수하여 타 시스템과의 연동이 뛰어나 상대적으로 시장 규모가 큰 통합 환경 및B2B EAI

구축을 위한 분야에도 활용될 수 있으며 모바일 인터넷 동기화 미들웨어는 모바일 기업 응,

용 구축 기업 응용간의 데이터 통합 웹 시스템 데이타베이스 동기 서비스 등의 분야, , PIMS ,

에 활용이 가능하다.

Page 119: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 119 -

본 연구의 결과물인 은 모바일 인터넷 환경의 핵심 기술로 활용될 수 있도록 업MoIM 2.0

체 기술이전 실시 및 상용화를 추진하고 차세대 인터넷 서버 기술 개발 과제의 응용 서, " "

비스를 위한 하부 기술을 제공함으로써 향후 차세대 인터넷 서버의 고 부가가치 창출에 기

여코자 한다.

Page 120: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 120 -

참고문헌

Page 121: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 121 -

참고문헌

[1] D. A. Agarwal, L. E. Moser, P. M. Melliar-Smith, and R. Budhia, "A Reliable

Ordered Delivery Across Interconnected Local-Area Networks," In Proceedings of

the International Conference on Network Protocols, Tokyo, Japan (November 1995),

365-374.

[2] Douglas B. Terry, Karin Petersen, Mike J.Spreitzer, and Marvin M.Theimer,

"The Case for Nontransparent Replication : Examples from Bayou", Bulletin of the

Technical Commitee on Data Engineering, vol. 4, pp. 12-20, dec 1998.

[3] K. Birman, A. Schiper and P. Stephenson, "Lightweight Causal and Atomic

Group Multicast," ACM Transactions on Computer Systems, 9, 3, (August 1991),

272-314.

[4] C. Bormann, J. Ott, H.-C. Gehrcke, T. Kerschat & N. Seifert, "MTP2: Towards

achieving the S.E.R.O. properties for multicast transport", Proceedings ICCCN'94,

International conference on computer communications and networks, 1994.

[5] Maria Butrico, Norman Cohen, John Givler, Ajay Mohindra, Apratim

Purakayastha, Dennis C. Shea, Enterprise Data Access from Mobile Computers: An

End-to-End Story", In Proceedings, Tenth International Workshop on Research

Issues in Data Engineering, February 27-28, 2000, San Diego, California. IEEE

Computer Society, Los Alamitos, California, pp. 9-16

[6] M. Day, J. F. Patterson, and D. Mitchell, "The Notification Service Transfer

Protocol(NSTP) : Infrastructure for Synchronous Groupware," WWW6 / Computer

Networks 29(813): 905-915 (1997).

Page 122: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 122 -

[7] Douglas E Corner, David L. Stevens Internetworking with TCP/IP Vol.3:

Client-Server Programming and Applications", Prentice Hall, 158~160

[8] Bruce Eckel, Thinking In Java, 2nd Edition" Prentice Hall, 597~598

[9] A Fiorano White Paper, "A Guide to Understanding the Pluggable, Scalable

Connection Management(SCM) Architecture in FioranoMQ5", Feb. 2001.

[10] Norman H. Cohen, A Java Framework for Mobile Data Synchronization", In

Lecture Notes in Computer Science 1901, Springer-Verlag, Berlin, 2000, 287~298

[11] Norman H. Cohen, "Application Programmer's Guide to Mobile Network

Computing Data Synchronization", Mobile Network Computing Reference

Specification Data Synchronization Work Group, Version1.1, March, 1999

[12] Norman H. Cohen, "Design and Implementation of the MNCRS Java Framework

for Mobile Data Synchronization" IBM Research Report, November, 2000

[13] Perterson, Karin, Spreitzer, Mike J., Terry, Douglas B., Themer, Marvin M.,

and Demers, Alan J. "Flexible update propagation for weakly consistent replication",

In SIGOPS' 97 : Proceedings of the Sixteenth ACM Symposium on Operating

Systems Principles, October 58, 1997, Sait-Malo, France, pp.288-301

Page 123: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 123 -

[14] Bil Lewis, Daniel J. Berg, Threads Primer" , Prentice Hall. 173-179

[15] Roger Riggs, "Data Synchronization Architecture Document" Mobile Network

Computing Reference Specification-Data Synchronization Work Group Version1.1,

March, 1999

[16] Sam Rushing, "Medusa: A High-Performance Internet Server Architecture",

[email protected], http://www.nightmare.com/mdeusa/medusa.html

[17] Jack Shirazi, "Java Performance Tunning", 0' Reilly, 278-279

[18] "Benchmarking JMS Based E-Business Messaging Providers" Java Developer's

Journal, Mar. 2001

[19] Mobile Network Computing Reference Specification Consortium Version 1.1,

March, 1999

Page 124: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 124 -

약 어 표

Page 125: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 125 -

약어표

API Application Programming Interface

B2B Business to Business

DB DataBase

DBMS DataBase Management System

EAI Enterprise Application Integration

FIFO First In Fist out

GCS Group Communication System

HTTP HyperText Transport Protocol

IT Information Technology

JDBC Java DataBase Connectivity

JMS Java Message Service

LSN Log Sequence Number

MoIM-Message Mobile Internet Middleware-Message

MoIM-Sync Mobile Internet Middleware for Synchronization

OBEX Object Exchange Protocol

PDA Personal Data Assistant

PIM Personal Information Management

SAX Simple Access Protocol

SyncML Synchronization Markup Language

SQL Structured Query Language

USB Universal Serial Bus

WAP Wireless Application Protocol

XML eXtensible Markup Language

Page 126: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 126 -

부록 기술문서 구성표:

Page 127: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 127 -

기술문서 구성표

특허1.

순번 작성자 특허명출원/등록일

국내 국제/출원/등록번호

1문애경외 명2

그룹 통신의 메시징 순서를 이용한즉시 갱신 중복 기법에서 전역 직렬성 검사 방법

국내 출원중

2박남식외 명1

를 이용한 의OTS Coordinator JTS상태객체 제거 방법

국내 출원중

3박남식외 명1

고성능 트랜잭션 처리 시스템에서을 이용한 병렬 로깅 방법LQM

국내 출원중

4박남식외 명2

통합 방문자 위치 등록기를 이용한이동 단말기의 위치관리방법 및 이동 전화 시스템

국내 출원중

5박남식외 명1

모바일 데이타베이스 시스템에서 캐쉬 등록기를 이용한 캐쉬 관리방법

국내 출원중

프로그램2.

순번 작성자 프로그램명출원/등록일

등록번호

1남궁한외 명5

한우리 워크플로우 시스템/TFlow 2.0:시험도구

‘01.11.152001-01-15-7

730

2남궁한외 명5

한우리 워크플로우 프로세/TFlow 2.0:스 빌더

‘01.11.152001-01-25-7

732

3김희정외 명1

환경에서의 객체 그룹 통신CORBA서비스구현

‘01.12.152001-01-24-8

903

4 김희정객체지향모델링을 사용한 주차 관리시스템 구현

‘01.12.222001-01-11-9

303

5 김희정그룹 멤버쉽 관리 알고리즘의 성능 비교테스트

‘01.12.222001-01-24-9

205

6 김희정를 사용한 그룹 통신 시스IP multicast

템 구현‘01.11.18

2001-01-24-8904

7 김희정 웹 모니터 ‘01.12.182001-01-15-8

891

8남궁한외 명5

한우리 워크플로우 시스/TFlow 2.0 :템관리 및 모니터링 도구

‘01.11.152001-01-11-7

731

9남궁한외 명5

한우리 워크플로우/TFlow 2.0 : DB예비기법

‘01.11.152001-01-25-7

715

10남궁한외 명5

한우리 Tflow Engine ‘01. 5.312001-01-26-3

617

11정인철외 명8

분산 객체 호환성 시험 도구 ‘02. 5.172001-01-23-3

238

Page 128: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 128 -

순번 작성자 프로그램명출원/등록일

등록번호

12남궁한외 명3

모바일 인터넷 동기화 미들웨어(MoIM-sync) 1.0

‘02. 5.172002-01-29-3

238

13정인철외 명5

모바일 인터넷 메시징 시스템에서 그룹통신구현

‘02. 5.172002-01-24-3

240

14정인철외 명5

모바일 인터넷 메시징 시스템에서의신뢰성보장 모듈 구현

‘02. 5.172002-01-24-3

234

15정인철외 명5

모바일 인터넷 메시징 시스템 기본 엔진구현

‘02. 5.172002-01-24-3

241

16정인철외 명5

모바일 인터넷 환경에서 데이터 동기화시스템 시연 개발

‘02. 5.172002-01-15-3

239

17정인철외 명5

테스트 응용 메신저MoIM-Message ‘02. 5.172002-01-18-3

237

18정인철외 명8

이동분산 환경에서의 그룹통신시스템 ‘02. 5.172002-01-24-3

235

19정인철외 명5

소켓 통신을 이용한 모바일 인터넷 메시징 시스템 기본 엔진 구현

‘02. 5.172002-01-24-3

233

20정인철외 명5

기반 회의시스MoIM-Message Text템

등록중

21강태근외 명5

모바일 인터넷 메시징 미들웨어(MoIM-Message) 2.0

등록중

22박남식외 명4

MoIM-Sync v2.0 등록중

논문3.

순번 작성자 논문명발표/게재일

국내/국제

학회/명Journal

1문애경외 명2

그룹 통신의 메시징 순서를MOERS:확장한 즉시 갱신 중복 기법

2002.12

국내 정보과학회

2이강우외 명2

소프트웨어 개발 프로세스와XP(eXtreme Programming)

2002.3 국내 정보과학회

3정인철외 명1

MoIM(Mobile Internet시스템에Middleware) -Message

서 통신처리RMI

2001.12

국내 NCS

4서영호외 명3

이동에이전트 기반 워크플로우 시스템의 설계

2001.8 국제 MATA

5이강우외 명1

한우리 새로운 컴퓨팅 환경/TFlow:을 위한 워크플로우 관리시스템

2001.5 국제ERSADS2001

6김희정외 명2

확장성 있는 시스템을 위한 클VOD라이언트측 협동캐슁 구조

2001.6 국제 PDPTA

7문애경외 명2

그룹통신의 전순서를 적용한 적극적중복 기법

2001.10

국제 ICIS

8정인철외 명1

MoIM(Mobile Internet시스템에Middleware) -Message

서 통신처리 방법RMI2002.4 국내 정보과학회

Page 129: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 129 -

순번 작성자 논문명발표/게재일

국내/국제

학회/명Journal

9남궁한외 명2

대규모 그리드 환경에서 효율적인찾기

2002.5 국내 ITRC

10문애경외 명1

멀티데이타베이스 시스템에서 메시징 순서를 적용한 전역 동시성 제어기법

2002.9 국제 ISDB

11손강민외 명2

소켓 폴링을 이용한 메시지 미들웨어의 소켓 네트워크 모듈 구현

2002.11

국제 AMS

12이강우외 명2

에서의 데이터베이스MoIM-SyncML변경추적 기법

2002.11

국내 정보과학회

13김희정외 명2

수신자들의 일관성과 원자성을 보장하는 Concurrent NotificationService

2002.11

국내 정보과학회

14손강민외 명2

자바 언어를 이용한 소켓폴링 서버구현

2002.11

국내 정보과학회

15서영호외 명4

모바일 인터넷 동기화 미들웨어시스템의 설계 및 구(MoIM-Sync)

2001.11

국내 정보과학회

16서영호외 명2

확장성 있는 이동에이전트 기반 계3층 워크플로우 시스템 구조

2002.11

국제 AMS

17문애경외 명1

지연 갱신을 이용한 신뢰성 있는 메시시 전송 기법

2002.7 국내COMAW20

02

18문애경외 명2

직렬성을 보장하는 그룹통신에서의중복 기법eager

2002.6 국제 PDPTA

19문애경외 명2

그룹통신 환경에서 효율적인 즉시갱신 중복 기법

2002.4 국내 정보과학회

4. TDP/TM

Page 130: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 130 -

순번 작성자 명TDP/TM 등록일TDP/TM

1 남궁한모바일 인터넷 환경에서 Dynamic,

연결에 관한 연구Scalable‘01. 8. 4 TDP

2 남궁한모바일 인터넷 환경에서 분산객체 호환성에 관한연구

‘01. 8. 4 TDP

3 남궁한모바일 인터넷 환경에서 신뢰성 있는 그룹통신 연구

‘01. 8. 4 TDP

4남궁한외5

메시지 미들웨어 요구사항 정MoIM v1.0의서

‘01.07.26 TM

5손강민외5

에서의 터널링RMI HTTP ‘01.11.19 TM

6손강민외5

리뷰J2ME ‘01.11.19 TM

7손강민외5

설계MoIM-Message pub/sub ‘01.11.19 TM

8문애경외5

메시징 시스템 구조 분석 ‘01.11.19 TM

9문애경외5

신뢰성 있는 메시지 전송 기능 설계 ‘01.11.21 TM

10문애경외5

한우리 의 회복 기법TFlow ‘01.11.21 TM

Page 131: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 131 -

순번 작성자 명TDP/TM 등록일TDP/TM

11문애경외5

공통 기능 규약JMS ‘01.11.21 TM

12문애경외5

구조 설계MoIM-Message ‘01.11.21 TM

13김희정외5

블루투스 조사 ‘01.11.22 TM

14김희정외5

에 대한 조사Mobile IP ‘01.11.22 TM

15김희정외5

그룹통신시스템 개관 ‘01.11.23 TM

16김희정외5

에 대한 조사MQ ‘01.11.23 TM

17김희정외5

다중전송지원 벤더 조사JMS ‘01.11.23 TM

18강태근외5

메시지 모델JMS ‘01.11.23 TM

19강태근외5

소개RMI ‘01.11.23 TM

20서영호외1

개략 설계MoIM-SyncStore ‘01.11.27 TM

21서영호외1

데이터 동기화 프레임워크MNCRS ‘01.11.27 TM

22이강우외1

모바일 환경을 위한 한우리 확장/TFlow ‘01.11.27 TM

23박남식외1

한우리/WT ‘01.11.29 TM

24서영호외1

개요Ant & CVS ‘01.11.29 TM

25이강우외1

한우리 설치 및 운용 지침서/TFlow2.0: ‘01.11.27 TM

26이강우외1

개요MoIM ‘01.11.27 TM

27박남식외1

모바일 인터넷 환경에서 데이터 동기화 시스템 시연 개발 용역 계획서

‘01.11.29 TM

28박남식외1

모바일 컴퓨팅 지원 업무 시스템 구축 방법 고찰

‘01.11.27 TM

29이강우외1

한우리 새로운 환경을 지원하는/TF1ow:워크플로우 관리시스템

‘01.11.29 TM

30서영호외1

한우리 의 재생 알고리즘TFlow ‘01.11.29 TM

31이강우외1

한우리 기술이전 교육 개요/TFlow : ‘01.11.28 TM

32정인철외5

시스템에서 통신처MoIM-Message RMI리 방법

‘01.11.28 TM

33정인철외5

설계 고려사항MoIM-Message ‘01.11.28 TM

34정인철외5

자바원 컨퍼런스 참가 보고서 ‘01.11.29 TM

35서영호외1

맞춤 거래 대행 서비스 ‘01.11.28 TM

36정인철외5

요구사항MoIM-Message ‘01.11.28 TM

37박남식외1

모바일 기기 발전방향 및 시장전망 고찰 ‘01.11.28 TM

38박남식외1

싱크 출현 및 적용사례 고찰 ‘01.11.28 TM

39박남식외1

개요SyncML, ‘01.11.28 TM

Page 132: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 132 -

53정인철외5

시스템 설계MoIM-Message ‘01.11.28 TM

54정인철외5

개발 공동연Mobile Internet Middleware구 워크샵 발표집

‘01.11.28 TM

55서영호외1

전자 시장을 위한 에이전트 기반 중계 하부 구조 설계 및 구현

‘01.11.28 TM

56서영호외1

프록시 캐쉬 기반 웹 QoS ‘01.11.28 TM

57정인철외5

시험 시나리오MoIM-Message ‘01.11.28 TM

58서영호외1

이동에이전트 기반 워크플로우 시스템의설계

‘01.11.28 TM

59서영호외1

웹 프록시 캐슁 ‘01.11.28 TM

60이강우외1

개Mobile Internet Middleware (MoIM)요 및 개발 일정

‘01.11.29 TM

61서영호외1

메시지 지향 미들웨어MQ Series : ‘01.11.29 TM

62박남식외1

모바일 적용 분야 및 솔루션 조사 내용 ‘01.11.27 TM

63박남식외1

모사일 컴퓨팅을 위한 정보관리 ‘01.11.29 TM

64이강우외1

개요MoIM-Sync ‘01.11.27 TM

65이강우외1

개요SyncML ‘01.11.27 TM

66이강우외1

웹 환경에서의 트랜잭션 처리시 일관성 보장 기법

‘01.11.29 TM

67 개요Bayou ‘01.11.27 TM

68이강우외1

웹 환경하에서의 트랜잭션 처리시 일관성보장 방법

‘01.11.29 TM

69서영호외1

큐를 이용한 복구기능한 요청 구현 ‘01.11.29 TM

70강태근외5

설계MoIM-Message (draft) ‘01.11.23 TM

71김희정외5

그룹 다중전송 지원 벤더 조사JMS ‘01.11.23 TM

72김희정외5

명세서에 대한 조사JMS ‘01.11.23 TM

73김희정외5

플랫폼 에 대한 조사J2ME (CLDC/MIDP) ‘01.11.23 TM

74김희정외5

에서 그룹통신 지원 위한 요구사항MMS ‘01.11.23 TM

75김희정외5

조사Numega ‘01.11.22 TM

76문애경외5

신뢰성 있는 메시지 전송 기능 테스트 ‘01.11.21 TM

77문애경외5

그룹통신의 전순서를 적용한 즉시 갱신 중복 기법

‘01.11.21 TM

78문애경외5

한우리 의 런타임 클라이언트TFlow ‘01.11.21 TM

79문애경외5

캐쉬일관성 기법 ‘01.11.21 TM

80문애경외5

메시징시스템 관련 제품분석 ‘01.11.21 TM

81손강민외5

소개UML ‘01.11.19 TM

82손강민외5

소켓기반 엔진 구현 보고MoIM-Message서

‘01.11.19 TM

문애경외의 개

Page 133: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 133 -

93정인철외5

확장기능 구현 보고서MoIM-Message ‘02.11.30 TM

94남궁한외5

모바일 인터넷 메시징 미들웨어 구현1.0보고서

‘02.03.18 TM

95남궁한외3

모바일 인터넷 동기화 미들웨어 구현1.0보고서

‘02.03.04 TM

96함호상외5

기능 시험MoIM-Message ‘02.12.02 TM

97박남식외1

모바일 인터넷의 제약사항 ‘02.12.07 TM

98박남식외1

모바일 자바 개요 ‘02.12.07 TM

99박남식외1

포인트베이스 마이크로 ‘02.12.07 TM

100박남식외1

모바일 가상기계의 개요 ‘02.12.07 TM

101박남식외1

모바일 자바 KVM ‘02.12.07 TM

102박남식외1

의 특징MIDP ‘02.12.07 TM

103박남식외1

디지털 생명체 개요 ‘02.12.07 TM

104함호상외5

지연 갱신을 이용한 신뢰성 있는 메시지전송 기법

‘02.12.03 TM

105문애경외5

기술의 개요Peer-to-Peer ‘02.12.07 TM

106정인철외5

차세대 응용 서비스 ‘02.12.04 TM

107정인철외5

디지털 생명체 ‘02.12.04 TM

108정인철외5

분산 컴퓨팅 기술 ‘02.12.04 TM

109정인철외5

기술HP Web Service ‘02.12.06 TM

110함호상외5

네트워크 모듈MoIM-Message 2.0- ‘02.12.07 TM

111함호상외5

디지털 생명체 연대기 ‘02.12.07 TM

112함호상외5

응용MoIM-Message -MMSMessenger2.0

‘02.12.07 TM

113함호상외5

위탁과제 결과 분석 문서 ‘02.12.07 TM

114함호상외5

디지털 라이프 세미나 디지털라이프- III (응용분야)

‘02.12.07 TM

115서영호외1

시스템의 설계 및 구현MoIM- Sync ‘02.12.07 TM

116서영호외1

에이전트의 개요 ‘02.12.07 TM

117서영호외1

인공 생명체의 개요 ‘02.12.07 TM

118서영호외1

시스템 판넬MoIM-Sync ‘02.12.07 TM

119서영호외1

웹 서버의 성능 이슈 ‘02.12.07 TM

120서영호외1

시스템의 소개MoIM-Sync ‘02.12.07 TM

121이강우외1

차년도 과제 수행 계획MoIM-Sync 2 ‘02.12.09 TM

122이강우외1

디지털 생명체 기술 분석 자료 ‘02.12.09 TM

Page 134: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 134 -

133김희정외1

확장성 있는 메이징 시스템을 위한 연결관리 기술 제안에 대한 고찰

‘02.12.12 TM

134 손강민 디지털라이프 연대표 확장- ‘02.12.12 TM

135문애경외2

감성형 로봇의 개요 ‘02.12.12 TM

136문애경외1

디지털 생명체 기반 애플리케이션 관련 연구

‘02.12.12 TM

137손강민외1

디지털 라이프 데모 ‘02.12.16 TM

138김희정외1

그룹 통신기능 설계MoIM-Message ‘02.12.16 TM

139김희정외1

일반적인 의 기본 기Messaging protocol능 및 조사spec

‘02.12.16 TM

140 손강민 리눅스 엑스포 전시회 시스템 설치도 ‘02.12.16 TM

141문애경외1

의 예제Network Simulator(ns-2) ‘02.12.16 TM

142김희정외5

그룹통신 기능의 개요 및MoIM-Message요구사항

‘02.12.12 TM

143김희정외5

확상성 있는 메이징 시스템을 위한 연결관리 기술 제안에 대한 고찰

‘02.12.12 TM

144김희정외5

인공생명체 기술 분석 ‘02.12.12 TM

145김희정외5

그룹 통신 기능의 필요성MoIM-Message과 지원방법 시연화면,

‘02.12.12 TM

146김희정외5

웹캐스팅의 개요 및 현황 조사 ‘02.12.12 TM

147문애경외5

포탈 서비스 조사ISP ‘02.12.12 TM

148강태근외1

설치 가이드MoIM-Message 2.0 ‘02.12.12 TM

149이강우외1

서버의 적합성 시험 프로그램MoIM-Sync개발 용역계획서

‘02.12.09 TM

150이강우외1

한우리 데이터베이스 스키마 정의/TFlow ‘02.12.09 TM

151이강우외1

한우리 워크플로우 인액트먼트 서/TFlow비스 설계

‘02.12.09 TM

152이강우외1

한우리 차 워크샵 발표 자료/TFlow 3 ‘02.12.09 TM

153이강우외1

한우리 기술 이전 교육 프로세스 정/TFlow (의)

‘02.12.09 TM

154이강우외1

차 워크샵 발표 자료Hanuri/TFlow 2 ‘02.12.09 TM

155서영호외1

시스템 브로셔MoIM-Sync ‘02.12.07 TM

156서영호외1

확장성 있는 이동에이전트 기반 계층 워3크플로우 시스템 구조

‘02.12.07 TM

157서영호외1

의 개요MNCRS ‘02.12.07 TM

158서영호외1

디지털 생명체의 응용 분야 ‘02.12.07 TM

159서영호외1

디지털 생명체의 개요 ‘02.12.07 TM

160함호상외5

디지털 라이프 세미나 디지털 라이프- I (소개)

‘02.12.07 TM

161함호상외5

디지털 라이프 세미나 엔터테인먼트- II (와의 만남)

‘02.12.07 TM

162함호상외5

시스템 성능 비교JMS ‘02.12.07 TM

163함호상외5

서버 구조도MoIM-Message (UML) ‘02.12.07 TM

Page 135: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 135 -

169문애경외5

즉시 갱신 중복 기법의 성능 ‘02.12.07 TM

170문애경외5

모바일 데이터베이스를 위한 계획된 단절기법

‘02.12.03 TM

171문애경외5

그룹통신 환경에서 효율적 즉시 갱신 중복기법

‘02.12.03 TM

172박남식외1

의 특징CDLC ‘02.12.07 TM

173박남식외1

모바일 자바 관련 용어 ‘02.12.07 TM

174문애경외5

메이징 순서를 이용한 전역 동시성 제어기법

‘02.12.03 TM

175박남식외1

모바일 데이터베이스 개요 ‘02.12.07 TM

176박남식외1

모바일 자바의 동향 ‘02.12.07 TM

177함호상외5

웹 캐스팅 ‘02.12.07 TM

178함호상외5

신뢰성 보장 메시징 모듈 설계 ‘02.12.02 TM

179함호상외5

메시징 순서를 사용 중복 제어 알고리즘 ‘02.12.02 TM

Page 136: 2002 12 년월 - ITFIND1990 , ,년대후반부터이동전화기기 전송 전송망기술의획기적인발달로단순한음성전달 분야에서사용되었던전화기와전화망이데이터전달기기및전달망으로서중요한역할을

- 136 -