30
CORBA CORBA 기기기기 기기–기기기기기기 기기기기 기기 기 기기 기기기기 기기–기기기기기기 기기기기 기기 기 기기 기기기기기 기기기기기기 기기기기기 기기기기기기 DC & DB Lab DC & DB Lab 기 기 기 기 기 기 Design and Implementation of a Multi-database Syste Based on CORBA

CORBA 기반에서 멀티–데이터베이스 시스템의 설계 및 구현

  • Upload
    wells

  • View
    84

  • Download
    0

Embed Size (px)

DESCRIPTION

CORBA 기반에서 멀티–데이터베이스 시스템의 설계 및 구현. A Design and Implementation of a Multi-database System Based on CORBA. 원광대학교 컴퓨터공학과 DC & DB Lab 안 길 수. 목 차. 서 론 연구 배경 연구 목적 관련 연구 멀티 데이터베이스 시스템의 설계 구조 특징 시스템 구현 구현 환경 컴포넌트들의 기능 시스템 구현 화면 시스템 동작 예 결 론 결론 및 향후 연구 방향. . 언어 표현. - PowerPoint PPT Presentation

Citation preview

Page 1: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

CORBA CORBA 기반에서 멀티–데이터베이스 시스템의 기반에서 멀티–데이터베이스 시스템의 설계 및 구현설계 및 구현

CORBA CORBA 기반에서 멀티–데이터베이스 시스템의 기반에서 멀티–데이터베이스 시스템의 설계 및 구현설계 및 구현

원광대학교 컴퓨터공학과 원광대학교 컴퓨터공학과 DC & DB LabDC & DB Lab

안 길 수안 길 수

원광대학교 컴퓨터공학과 원광대학교 컴퓨터공학과 DC & DB LabDC & DB Lab

안 길 수안 길 수

A Design and Implementation of a Multi-database SystemBased on CORBA

Page 2: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

22DC & DB LabDC & DB Lab

목 차목 차목 차목 차 서 론서 론

연구 배경연구 배경 연구 목적연구 목적

관련 연구관련 연구 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계

구조구조 특징특징

시스템 구현시스템 구현 구현 환경구현 환경 컴포넌트들의 기능컴포넌트들의 기능 시스템 구현 화면시스템 구현 화면 시스템 동작 예시스템 동작 예

결 론결 론 결론 및 향후 연구 방향결론 및 향후 연구 방향

서 론서 론 연구 배경연구 배경 연구 목적연구 목적

관련 연구관련 연구 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계

구조구조 특징특징

시스템 구현시스템 구현 구현 환경구현 환경 컴포넌트들의 기능컴포넌트들의 기능 시스템 구현 화면시스템 구현 화면 시스템 동작 예시스템 동작 예

결 론결 론 결론 및 향후 연구 방향결론 및 향후 연구 방향

Page 3: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

33DC & DB LabDC & DB Lab

서 론서 론서 론서 론 연구 배경연구 배경

데이터베이스 시스템 환경의 변화 데이터베이스 시스템 환경의 변화

연구 배경연구 배경 데이터베이스 시스템 환경의 변화 데이터베이스 시스템 환경의 변화

14 7 2

14 7 214 7 2

14 7 2이 질 성

중앙 집중된 중앙 집중된 데이터베이스 시스템데이터베이스 시스템

분산된 분산된 데이터베이스 시스템데이터베이스 시스템

통합된 사용자 뷰통합된 사용자 뷰

정보의 불일치정보의 불일치

언어 표현언어 표현 데이터 표현데이터 표현

Page 4: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

44DC & DB LabDC & DB Lab

서 론서 론서 론서 론

연구 배경연구 배경 기존의 연구 동향기존의 연구 동향

연구 배경연구 배경 기존의 연구 동향기존의 연구 동향

JAVA APIJAVA API 인 인 JDBCJDBC 를 이용한 를 이용한 MDBS MDBS 연동에 대한 연구연동에 대한 연구

위치 투명성 제공위치 투명성 제공확장성과 유연성 제공확장성과 유연성 제공

이질성 극복 제한이질성 극복 제한

특정 특정 DBMS DBMS 라이브러리에 종속라이브러리에 종속 일관된 인터페이스 부재일관된 인터페이스 부재

CORBA CORBA 기반의 기반의 C++ C++ 언어를 이용한 언어를 이용한 33 계층 계층 C/S C/S 구조구조

Page 5: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

55DC & DB LabDC & DB Lab

서 론서 론서 론서 론

연구 배경연구 배경 멀티멀티 -- 데이터베이스 시스템데이터베이스 시스템

연구 배경연구 배경 멀티멀티 -- 데이터베이스 시스템데이터베이스 시스템

DatabaseDatabase22

DatabaseDatabase11

DatabaseDatabase33

DatabaseDatabasenn

14 7 2 14 7 2 14 7 2 14 7 2DBMSDBMS11

DBMSDBMS22

DBMSDBMS33

DBMSDBMSnn

Multi DBMSMulti DBMS

GlobalGlobalUserUser

LocalLocalUserUser

LocalLocalUserUser

Page 6: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

66DC & DB LabDC & DB Lab

서 론서 론서 론서 론 연구 목적연구 목적 연구 목적연구 목적

TCP / IP

Web Browser

OR

B

HTTP

IIOP

TCP / IP

HTTPD

AppletApplet

classes

DriverManager

JDBC

Driver

Driver

Driver

JDBC

JDBC

JDBC

TCP / IP

OR

B

NamesNames

OWDJ

html

AppletApplet

: html page : Java Object: CORBA Servant: Applet : RDBMS: Java Database

: COS : Global Schema

Page 7: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

77DC & DB LabDC & DB Lab

관련 연구관련 연구관련 연구관련 연구 객체지향 미들웨어 객체지향 미들웨어 CORBACORBA

네트워크 투명성 네트워크 투명성 - - 확장 가능한 서버 기반구조 제공확장 가능한 서버 기반구조 제공 JAVAJAVA & & 데이터베이스 미들웨어 데이터베이스 미들웨어 JDBCJDBC

구현 투명성 구현 투명성 - - 운영체제에 의존하지 않는 이식 가능한 운영체제에 의존하지 않는 이식 가능한 객체의 기반구조를 제공객체의 기반구조를 제공

ObjectWebObjectWeb 분산 환경에서 동적이고 상호작용이 가능한 분산 환경에서 동적이고 상호작용이 가능한 3-3- 계층 계층

웹 환경으로 변화웹 환경으로 변화

객체지향 미들웨어 객체지향 미들웨어 CORBACORBA 네트워크 투명성 네트워크 투명성 - - 확장 가능한 서버 기반구조 제공확장 가능한 서버 기반구조 제공

JAVAJAVA & & 데이터베이스 미들웨어 데이터베이스 미들웨어 JDBCJDBC 구현 투명성 구현 투명성 - - 운영체제에 의존하지 않는 이식 가능한 운영체제에 의존하지 않는 이식 가능한

객체의 기반구조를 제공객체의 기반구조를 제공 ObjectWebObjectWeb

분산 환경에서 동적이고 상호작용이 가능한 분산 환경에서 동적이고 상호작용이 가능한 3-3- 계층 계층 웹 환경으로 변화웹 환경으로 변화

CORBACORBA JAVAJAVA

Page 8: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

88DC & DB LabDC & DB Lab

관련 연구관련 연구관련 연구관련 연구

UML(Unified Modeling Language)UML(Unified Modeling Language) 기존의 객체지향 모델링 방법의 통합기존의 객체지향 모델링 방법의 통합

Grady BoochGrady Booch 의 의 Booch Booch 기법기법 , , Jim RumbaughJim Rumbaugh 의 의 OMT OMT 기법기법 , , JocobsonJocobson 의 의 OOSEOOSE 기법 등기법 등

4 4 종류의 종류의 ViewView

UML(Unified Modeling Language)UML(Unified Modeling Language) 기존의 객체지향 모델링 방법의 통합기존의 객체지향 모델링 방법의 통합

Grady BoochGrady Booch 의 의 Booch Booch 기법기법 , , Jim RumbaughJim Rumbaugh 의 의 OMT OMT 기법기법 , , JocobsonJocobson 의 의 OOSEOOSE 기법 등기법 등

4 4 종류의 종류의 ViewView

Use Case View

Logical View

Component View

Deployment View

Page 9: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

99DC & DB LabDC & DB Lab

xCon xCon 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계xCon xCon 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계 Sequence Sequence 다이어그램 다이어그램 : : 전역 데이터 생성전역 데이터 생성 Sequence Sequence 다이어그램 다이어그램 : : 전역 데이터 생성전역 데이터 생성

: administrator

1: ServerApplication()

2 : xCon()

3 : Set Global DB Name

4 : Set Global Schema

5 : create Next Item

6 : GDB Name Text get Text(db_name)

7 : Global Schema(String, String, String, String)

8 : Push data(String, String, String, String , String , String , String)

9 : marshall Meta Data(GSL, String)

: ServerApplication

: ServerApplication : xCon: xCon : Global Schema: Global Schema : GSI: GSI

Page 10: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1010DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 Sequence Diagram : Sequence Diagram : 전역 데이터 검색전역 데이터 검색 Sequence Diagram : Sequence Diagram : 전역 데이터 검색전역 데이터 검색

: administrator

1: ServerApplication()

2 : xCon()

3 : db SelectChoice.addItem(dname)

4 : Select GDBName

5 : GDBNameText.getText(db_name)

6 : GlobalSchema()

7 : Table Details()

8 : viewResult(db_name)

11 : fetchMetaData(GSI, Vector, String)

: ServerApplication

: ServerApplication : xCon: xCon : Global

Schema

: Global Schema : GSI: GSI : Table

Details

: TableDetails

9 : GSI(Vector)

12 : viewResultSet()

10 : TableDetails()

Return TableDetails

Page 11: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1111DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 Sequence DiagramSequence Diagram : : 콜백을 이용한 메시지 호출콜백을 이용한 메시지 호출 Sequence DiagramSequence Diagram : : 콜백을 이용한 메시지 호출콜백을 이용한 메시지 호출

1: Call BackImpl(ClientApplet)

2 : orb.connect(CallBackImpl)

3 : TransmitHelper.narrow(DBServant)

4 : transQuery(CallBack, String)

5 : DBInterface(String, String, Sting, String, String, String, xGuiDBServant)

6 : createTable(String)

7 : exeQuery(String)

8 : setHead(String)

10 : addRow(String)9 : xGrid.setHead(String)

11 : xGrid.addRow(String)

: ClientApplet

: ClientApplet

: Call BackImpl

: Call BackImpl

: TransmitHelper

: TransmitHelper

: CallBack

: CallBack

: ServerApplication

: ServerApplication

: xGuiDBServant

: xGuiDBServant

: DBInterface

: DBInterface : Transmit: Transmit

12 : repaint()

13 : xGrid.repaint()

Page 12: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1212DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 Collaboration DiagramCollaboration Diagram : : 콜백을 이용한 메시지 호출콜백을 이용한 메시지 호출 Collaboration DiagramCollaboration Diagram : : 콜백을 이용한 메시지 호출콜백을 이용한 메시지 호출

2 : orb.connect(CallBackImpl)

3 : TransmitHelper.narrow(DBServant)

4 : transQuery(CallBack, String)

: ClientApplet

: ClientApplet

: Call BackImpl

: Call BackImpl

: TransmitHelper

: TransmitHelper

: CallBack

: CallBack

: ServerApplication

: ServerApplication

: xGuiDBServant

: xGuiDBServant

: Transmit: Transmit

: DBInterface: DBInterface

1: Call BackImpl(ClientApplet)

6 : createTable(String)

7 : exeQuery(String)

5 : DBInterface(String, String, Sting, String, String, String, xGuiDBServant)

8 : setHead(String)

10 : addRow(String)

9 : xGrid.setHead(String)

11 : xGrid.addRow(String)

12 : repaint()13 : xGrid.repaint()

Page 13: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1313DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 Sequence DiagramSequence Diagram : : 멀티 데이터베이스 검색멀티 데이터베이스 검색 Sequence DiagramSequence Diagram : : 멀티 데이터베이스 검색멀티 데이터베이스 검색

1: ServerApplication() 2 : orb.bind(DBServant)

3 : xGuiDBServant() 4 : init()

5 : narrow(DBServant)6 : CallBackImpl(ClientApplet)

7 : ClientApplet()8 : transQuery(CallBack, String)

10 : DBInterface(String, String, String, String, String, String, String, xGuiDBServant)9 : fetchMetaData(GSI, Vector, String)

11 : run()

: ClientApplet

: ClientApplet

: Call BackImpl

: Call BackImpl

: TransmitHelper

: TransmitHelper

: GlobalSchema

: GlobalSchema

: ServerApplication

: ServerApplication

: xGuiDBServant

: xGuiDBServant

: DBInterface

: DBInterface

12 : executeQuery(String)13 : createTable(String)

: user : administrator

14 : exeQuery(String)15 : executeQuery(String)

16 : setHead(String)17 : xGrid.setHead(String)

18 : addRow(String)19 : xGrid.Row(String)

20 : repaint()21 : xGrid.repaint()

: RDBMS

Page 14: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1414DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 IDL IDL 설계설계 IDL IDL 설계설계

module xCon3 {

interface CallBack { typedef sequence <string> hdSeq; typedef sequence <string> dtSeq;

oneway void setHead(in hdSeq head); oneway void addRow(in dtSeq data); oneway void repaint( ); oneway void sendMsg(in string message);};

interface Transmit { oneway void transQuery(in CallBack cliRef, in string msg);};

};

Page 15: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1515DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 33 계층 서비스 모델 계층 서비스 모델 33 계층 서비스 모델 계층 서비스 모델

ClientApplet(from ClientApp)

CallBackImpl(from ClientApp)

<< Interface >>CallBack

(from ClientApp)

xGrid(from ClientApp)

LogFrame(from ClientApp)

ServerApplication(from ServerApp)

xGuiDBServant(from ServerApp)

<< Interface >>Transmit

(from IDLFiles)

DBInterface(from ServerApp)

xCon(from ServerApp)

GlobalSchema(from ServerApp)

GSI(from ServerApp)

TableDetails(from ServerApp)

<< Actor >>RDBMS

(from Use Case View)

User Service Business Service Data Service

Page 16: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1616DC & DB LabDC & DB Lab

Class Diagram : Class Diagram : 사용자 서비스 계층사용자 서비스 계층Class Diagram : Class Diagram : 사용자 서비스 계층사용자 서비스 계층Applet

(from applet)

Panel(from awt)

<<Interface>>CallBack

(from applet)

setHead()addRow()repaint()sendMsg()_deref()

SymWidow

ORB(from CORBA)

Naming Context(from IDLFiles)

LogFrame

fComponetsAdjusted:booleanxGrid()setHead()reshape()repaint()addRow()LogFram_WindowClosing()

SymMouse

ClientApplet

$iMaxRecent:int

init()butLog_MouseClicked()butExecute_MouseClicked()action()setRecent()ClientApplect()

iRecent:intiRecentCount:int

<<Interface>>Transmit

(from IDLFiles)

transQuery()_deref()

_Call BackImplBase(from IDLFiles)

_CallBackImplBase()_CallBackImplBase()_CallBackImplBase()_CallBackImplBase()_deref()

CallBackImpl

CallBackImpl()setHead()

repaint()addRow()

sendMsg()

xGrid

xGrid()setHead()reshape()repaint()addRow()adjustScroll()

update()paint()

iFirst : intcDrag:intxDrag:intbDrag:boolean

-this$0

logFrame

gRecent

gResult2

-this$0

orb

rootContextxConContext

2

srvRef

+cliRef

+cliRef

Page 17: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1717DC & DB LabDC & DB Lab

Class Diagram : Class Diagram : 비즈니스 서비스 계층비즈니스 서비스 계층Class Diagram : Class Diagram : 비즈니스 서비스 계층비즈니스 서비스 계층Frame

(from awt) ServerApplication

main()ServerApplication()

xCon

$ table_number : int$ base_time : long

xCon()main()quitXCon()createSchemaButton()createCommitButton()dropShcemaButton()

NamingContext(from CosNaming)

Transmit

transQuery()_deref()

(from IDLFiles)

<<Interface>>

Thread(from lang)

_TransmitImplBase

_TransmitImplBase()_deref()

(from IDLFiles)

GlobalSchema

GlobalSchema()GlobalSchema()viewResult()marshallMetaData()fetchMetaData()

xGuiDBServant

xGuiDBServant()exeQuery()createTable()transQuery()

DBInterface

DBInterface()run()

Serializable

(from io)

GSI

pushData()GSI()

TableDetails

TableDetails()

Vector(from util)

DataInputStream

(from io)

hDatabase

(from hSql)

hConnection

(from hSql)

CallBack

setHead()addRow()repaint()sendMsg()_deref()

(from IDLFiles)

<<Interface>>

ResultSet

(from sql)

Statement(from sql)

Connection

(from sql)

+tds rows+rows

isgsi

+adminFrame +gsm

+gsm

$d Database

+cli Ref

+con

+stmt

+rs

+DB

+$dbServant

+DBServant

1..3

$rootContext$xConContext

+orb

+adminFrame

ORB(form CORBA)

+tds

Page 18: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1818DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계 멀티멀티 -- 데이터베이스 시스템 배치도데이터베이스 시스템 배치도 멀티멀티 -- 데이터베이스 시스템 배치도데이터베이스 시스템 배치도

: : Server ApplicationServer Application

: : xCon xCon (System (System

Manager GUI)Manager GUI)

Tier 1

Tier 2

Tier 3R-DBMS

R-DBMSR-DBMS

TCP / IP

TCP / IP

CORBA / IIOP

: : DBInterfaceDBInterface

: : LogLog FrameFrame

: : Client AppletClient Applet

: : CallBackImplCallBackImpl

: : hSqlhSql

: GlobalSchemaGlobalSchema

: : TDS TDS : : G S I G S I

: : xGuiDBServantxGuiDBServant

: : DBInterfaceDBInterface: : DBInterfaceDBInterface

JDBC

:xGrid:xGrid

Tier 3

: : Server ApplicationServer Application

: : xCon (System xCon (System Manager GUI)Manager GUI)

R-DBMSR-DBMS R-DBMS

CORBA / IIOP

: : DBInterfaceDBInterface

: : Client AppletClient Applet

: : CallBackImplCallBackImpl

: : hSqlhSql

: GlobalSchemaGlobalSchema

: : TDS TDS : : G S I G S I

: : xGuiDBServantxGuiDBServant

: : DBInterfaceDBInterface: : DBInterfaceDBInterface

JDBC

:xGrid:xGridUser service

Business service

Data service

: : LogLog FrameFrame

Page 19: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

1919DC & DB LabDC & DB Lab

멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계멀티멀티 -- 데이터베이스 시스템의 설계데이터베이스 시스템의 설계

시스템 설계상의 특징시스템 설계상의 특징 TCP/IP TCP/IP 기반에서 기반에서 ORBORB 간 통신을 위해 간 통신을 위해 IIOP IIOP 프로토콜 프로토콜

사용사용

ORBORB 간의 상호 운용성 증대간의 상호 운용성 증대

플랫폼플랫폼 ((ORB)ORB) 에 독립적인 애플리케이션 생성에 독립적인 애플리케이션 생성

데드록과 블록된 메소드 호출 방지데드록과 블록된 메소드 호출 방지

클라이언트에 콜백 객체 사용클라이언트에 콜백 객체 사용

각 지역 데이터베이스로부터 질의 결과는 비즈니스 서비스 각 지역 데이터베이스로부터 질의 결과는 비즈니스 서비스

계층에 존재하는 메모리 상주 데이터베이스에 테이블로 보관계층에 존재하는 메모리 상주 데이터베이스에 테이블로 보관

전역 데이터는 자바의 직렬화 가능한 객체를 사용전역 데이터는 자바의 직렬화 가능한 객체를 사용

파일 시스템 상에 영속 객체파일 시스템 상에 영속 객체 ((Persistent Object) Persistent Object) 상태로 상태로

보관보관

시스템 설계상의 특징시스템 설계상의 특징 TCP/IP TCP/IP 기반에서 기반에서 ORBORB 간 통신을 위해 간 통신을 위해 IIOP IIOP 프로토콜 프로토콜

사용사용

ORBORB 간의 상호 운용성 증대간의 상호 운용성 증대

플랫폼플랫폼 ((ORB)ORB) 에 독립적인 애플리케이션 생성에 독립적인 애플리케이션 생성

데드록과 블록된 메소드 호출 방지데드록과 블록된 메소드 호출 방지

클라이언트에 콜백 객체 사용클라이언트에 콜백 객체 사용

각 지역 데이터베이스로부터 질의 결과는 비즈니스 서비스 각 지역 데이터베이스로부터 질의 결과는 비즈니스 서비스

계층에 존재하는 메모리 상주 데이터베이스에 테이블로 보관계층에 존재하는 메모리 상주 데이터베이스에 테이블로 보관

전역 데이터는 자바의 직렬화 가능한 객체를 사용전역 데이터는 자바의 직렬화 가능한 객체를 사용

파일 시스템 상에 영속 객체파일 시스템 상에 영속 객체 ((Persistent Object) Persistent Object) 상태로 상태로

보관보관

Page 20: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2020DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 구현환경구현환경 구현환경구현환경

IONA OrbixWeb 3.1 JDK 1.2 tinyweb JDBC Informix Oracle

OracleOracle

14 7 2

InformixInformix

OracleOracle

Windows NT 4.O

Windows NT 4.O

HP UX 10.20

Page 21: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2121DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층

ServerApplication : CORBA ServerApplication : CORBA 서버 객체서버 객체 ServantServant 인 인 xGuiDBServantxGuiDBServant 를 네이밍 서비스에 등록를 네이밍 서비스에 등록 xGuiDBServantxGuiDBServant 를 초기화를 초기화

xCon(Cross Connector)xCon(Cross Connector) MDBSMDBS 의 전역 데이터 관리를 위한 사용자 인터페이스의 전역 데이터 관리를 위한 사용자 인터페이스

hSqlhSql 메모리 상주 데이터베이스메모리 상주 데이터베이스 지역 데이터베이스들의 쿼리 실행 결과를 수집 및 재 지역 데이터베이스들의 쿼리 실행 결과를 수집 및 재

가공가공 DBInterfaceDBInterface

자바의 쓰레드를 구현 자바의 쓰레드를 구현 - - 지역 데이터베이스 동시 접속지역 데이터베이스 동시 접속 질의 처리결과를 질의 처리결과를 hSqlhSql 에 전송할 쿼리 스트링으로 생성에 전송할 쿼리 스트링으로 생성 지역 데이터베이스의 질의 처리 결과를 지역 데이터베이스의 질의 처리 결과를 xGuiDBServant xGuiDBServant

객체의 메시지에 쿼리 스트링으로 전송하여 객체의 메시지에 쿼리 스트링으로 전송하여 hSqlhSql 에 입력 에 입력

컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층 ServerApplication : CORBA ServerApplication : CORBA 서버 객체서버 객체

ServantServant 인 인 xGuiDBServantxGuiDBServant 를 네이밍 서비스에 등록를 네이밍 서비스에 등록 xGuiDBServantxGuiDBServant 를 초기화를 초기화

xCon(Cross Connector)xCon(Cross Connector) MDBSMDBS 의 전역 데이터 관리를 위한 사용자 인터페이스의 전역 데이터 관리를 위한 사용자 인터페이스

hSqlhSql 메모리 상주 데이터베이스메모리 상주 데이터베이스 지역 데이터베이스들의 쿼리 실행 결과를 수집 및 재 지역 데이터베이스들의 쿼리 실행 결과를 수집 및 재

가공가공 DBInterfaceDBInterface

자바의 쓰레드를 구현 자바의 쓰레드를 구현 - - 지역 데이터베이스 동시 접속지역 데이터베이스 동시 접속 질의 처리결과를 질의 처리결과를 hSqlhSql 에 전송할 쿼리 스트링으로 생성에 전송할 쿼리 스트링으로 생성 지역 데이터베이스의 질의 처리 결과를 지역 데이터베이스의 질의 처리 결과를 xGuiDBServant xGuiDBServant

객체의 메시지에 쿼리 스트링으로 전송하여 객체의 메시지에 쿼리 스트링으로 전송하여 hSqlhSql 에 입력 에 입력

Page 22: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2222DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층

GSI(Global Schema Information)GSI(Global Schema Information) 전역 데이터베이스의 이름을 파일 이름으로하여 파일 전역 데이터베이스의 이름을 파일 이름으로하여 파일

시스템상에 전역 데이터를 보관시스템상에 전역 데이터를 보관

SIM(Schema Information Manager)SIM(Schema Information Manager) 전역 데이터 관리전역 데이터 관리 GSI GSI 객체를 파일 상태로 변환객체를 파일 상태로 변환 ((Marshalling)Marshalling) 파일 상태의 파일 상태의 GSIGSI 를 개체화 를 개체화 - - 자료 입력자료 입력 // 삭제삭제 // 검색검색

TDS(TableDetailS)TDS(TableDetailS) GSIGSI 의 데이터인 전역 데이터를 의 데이터인 전역 데이터를 xCon xCon 객체에 전달하기 객체에 전달하기

위한 매개 객체위한 매개 객체

컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층 GSI(Global Schema Information)GSI(Global Schema Information)

전역 데이터베이스의 이름을 파일 이름으로하여 파일 전역 데이터베이스의 이름을 파일 이름으로하여 파일 시스템상에 전역 데이터를 보관시스템상에 전역 데이터를 보관

SIM(Schema Information Manager)SIM(Schema Information Manager) 전역 데이터 관리전역 데이터 관리 GSI GSI 객체를 파일 상태로 변환객체를 파일 상태로 변환 ((Marshalling)Marshalling) 파일 상태의 파일 상태의 GSIGSI 를 개체화 를 개체화 - - 자료 입력자료 입력 // 삭제삭제 // 검색검색

TDS(TableDetailS)TDS(TableDetailS) GSIGSI 의 데이터인 전역 데이터를 의 데이터인 전역 데이터를 xCon xCon 객체에 전달하기 객체에 전달하기

위한 매개 객체위한 매개 객체

ServerTableName

DriverName

UserName

PasswdSub-

protocolSub-NameServer

TableName

DriverName

UserName

PasswdSub-

protocolSub-NameRemote

ServerTableName

DriverName

UserName

PasswdSub-

ProtocolSub-Name

전역 데이터의 구조

Page 23: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2323DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현

컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층 xGuiDBServantxGuiDBServant

전역 질의문 분해 및 재 조합전역 질의문 분해 및 재 조합 SQL SQL 키워드 사이의 스트링을 추출하여 토큰화 키워드 사이의 스트링을 추출하여 토큰화 테이블 테이블

이름을 이용하여 지역 질의문으로 조합이름을 이용하여 지역 질의문으로 조합 전역 질의문 파싱시 지역 데이터베이스는 전역 질의문 파싱시 지역 데이터베이스는 33 개까지로 제한개까지로 제한

전위 처리전위 처리 전역 질의문으로부터 지역 질의문을 재조합전역 질의문으로부터 지역 질의문을 재조합 후위 처리단계에서 후위 처리단계에서 hSqlhSql 의 테이블을 검색하기 위한 의 테이블을 검색하기 위한

질의문 조합질의문 조합 DBInterface DBInterface 객체에 지역 질의문을 전달하고 쓰레드를 실행 객체에 지역 질의문을 전달하고 쓰레드를 실행

후위 처리후위 처리 전위 처리단계에서 조합된 질의문을 이용해 전위 처리단계에서 조합된 질의문을 이용해 hSql hSql 검색검색 클라이언트 콜백 객체의 메시지를 호출하여 전달클라이언트 콜백 객체의 메시지를 호출하여 전달

컴포넌트들의 기능 컴포넌트들의 기능 - - Business Service Business Service 계층계층 xGuiDBServantxGuiDBServant

전역 질의문 분해 및 재 조합전역 질의문 분해 및 재 조합 SQL SQL 키워드 사이의 스트링을 추출하여 토큰화 키워드 사이의 스트링을 추출하여 토큰화 테이블 테이블

이름을 이용하여 지역 질의문으로 조합이름을 이용하여 지역 질의문으로 조합 전역 질의문 파싱시 지역 데이터베이스는 전역 질의문 파싱시 지역 데이터베이스는 33 개까지로 제한개까지로 제한

전위 처리전위 처리 전역 질의문으로부터 지역 질의문을 재조합전역 질의문으로부터 지역 질의문을 재조합 후위 처리단계에서 후위 처리단계에서 hSqlhSql 의 테이블을 검색하기 위한 의 테이블을 검색하기 위한

질의문 조합질의문 조합 DBInterface DBInterface 객체에 지역 질의문을 전달하고 쓰레드를 실행 객체에 지역 질의문을 전달하고 쓰레드를 실행

후위 처리후위 처리 전위 처리단계에서 조합된 질의문을 이용해 전위 처리단계에서 조합된 질의문을 이용해 hSql hSql 검색검색 클라이언트 콜백 객체의 메시지를 호출하여 전달클라이언트 콜백 객체의 메시지를 호출하여 전달

Page 24: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2424DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현

컴포넌트들의 기능 컴포넌트들의 기능 - - User Service User Service 계층계층 ClientAppletClientApplet

CORBA CORBA 클라이언트클라이언트

CallBackImpl CallBackImpl 객체를 초기화객체를 초기화

서버 객체에게 전역 질의문과 콜백의 객체 참조를 전달서버 객체에게 전역 질의문과 콜백의 객체 참조를 전달

CallBackImplCallBackImpl

DBServantDBServant 로부터 최종 결과를 전달받기 위한 코바 객체 로부터 최종 결과를 전달받기 위한 코바 객체

DBServantDBServant 는 는 CallBackImpl CallBackImpl 객체의 메시지를 호출하여 객체의 메시지를 호출하여

xGrid xGrid 컴포넌트에 결과를 출력컴포넌트에 결과를 출력

xGridxGrid

사용자에게 결과를 보이기 위한 사용자에게 결과를 보이기 위한 Grid Grid 패널패널

컴포넌트들의 기능 컴포넌트들의 기능 - - User Service User Service 계층계층 ClientAppletClientApplet

CORBA CORBA 클라이언트클라이언트

CallBackImpl CallBackImpl 객체를 초기화객체를 초기화

서버 객체에게 전역 질의문과 콜백의 객체 참조를 전달서버 객체에게 전역 질의문과 콜백의 객체 참조를 전달

CallBackImplCallBackImpl

DBServantDBServant 로부터 최종 결과를 전달받기 위한 코바 객체 로부터 최종 결과를 전달받기 위한 코바 객체

DBServantDBServant 는 는 CallBackImpl CallBackImpl 객체의 메시지를 호출하여 객체의 메시지를 호출하여

xGrid xGrid 컴포넌트에 결과를 출력컴포넌트에 결과를 출력

xGridxGrid

사용자에게 결과를 보이기 위한 사용자에게 결과를 보이기 위한 Grid Grid 패널패널

Page 25: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2525DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 시스템 구현 화면시스템 구현 화면 시스템 구현 화면시스템 구현 화면

OrbixWeb Daemon OrbixWeb Daemon 실행 화면실행 화면

Servant Servant 초기화 화면초기화 화면

Page 26: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2626DC & DB LabDC & DB Lab

시스템 구현시스템 구현 :: 수직 분할된 전역 데이터베이스 스키마의 수직 분할된 전역 데이터베이스 스키마의 구조구조

시스템 구현시스템 구현 :: 수직 분할된 전역 데이터베이스 스키마의 수직 분할된 전역 데이터베이스 스키마의 구조구조

CUSTOMERCUSTOMER

OracleOracle

greenAmigo.hdsys.co.kr

yklee

Amigo14 7 2

c_id balance

c_id name address

green

yklee

amigo.Hdsys.co.kr

c_bal

c_inf

c_job

1 Gil_sou Ahn Chonbuk Kimje

2 Eun_sun Ryu Chonnam Mokpo

3 Hyon_chol Lee Chonbuk Iksan

4 Chang_won Jung Chonbuk Kunsan

5 Dong_hun Cho Chonbuk Iksan

1 10000

2 20000

3 30000

4 40000

5 50000

1 Sails man male 28

2 janitor male 49

3 guide female 28

4 House keeping female 36

5 Sails man male 39

SS

HD

NB

SS

c_id job sex companyage

InformixInformix

OracleOracle

Page 27: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2727DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 시스템 동작시스템 동작 시스템 동작시스템 동작

지역 데이터베이스를 위한 지역 질의문 생성 과정지역 데이터베이스를 위한 지역 질의문 생성 과정

전역 스키마 관리를 위한 윈도우전역 스키마 관리를 위한 윈도우

Page 28: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2828DC & DB LabDC & DB Lab

시스템 구현시스템 구현시스템 구현시스템 구현 결과 화면결과 화면 결과 화면결과 화면

Page 29: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

2929DC & DB LabDC & DB Lab

결 론결 론결 론결 론 3-3- 계층 멀티계층 멀티 -- 데이터베이스 시스템 구축데이터베이스 시스템 구축

지역 데이터베이스에 대한 통합된 뷰 제공지역 데이터베이스에 대한 통합된 뷰 제공 콜백 수신을 위한 객체 구현콜백 수신을 위한 객체 구현

클라이언트측에서 서버의 클라이언트측에서 서버의 메시지 호출메시지 호출을 수신을 수신 클라이언트 객체와 서버 객체간 메시지 호출시 클라이언트 객체와 서버 객체간 메시지 호출시 블록킹 방지블록킹 방지 비동기 메시지 호출을 사용한 비동기 메시지 호출을 사용한 데드록 방지데드록 방지

메모리 상주 데이터베이스 사용메모리 상주 데이터베이스 사용 성능 향상과 데이터 처리의 일관성 유지성능 향상과 데이터 처리의 일관성 유지 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능

전역 데이터 관리 모듈 설계전역 데이터 관리 모듈 설계 관리의 효율성과 성능 향상관리의 효율성과 성능 향상

전역 질의문 파싱 로직 구현전역 질의문 파싱 로직 구현 하나 이상의 시스템에서 관리하는 데이터베이스에 대한 하나 이상의 시스템에서 관리하는 데이터베이스에 대한

전역 질의문 파싱 가능전역 질의문 파싱 가능

3-3- 계층 멀티계층 멀티 -- 데이터베이스 시스템 구축데이터베이스 시스템 구축 지역 데이터베이스에 대한 통합된 뷰 제공지역 데이터베이스에 대한 통합된 뷰 제공

콜백 수신을 위한 객체 구현콜백 수신을 위한 객체 구현 클라이언트측에서 서버의 클라이언트측에서 서버의 메시지 호출메시지 호출을 수신을 수신 클라이언트 객체와 서버 객체간 메시지 호출시 클라이언트 객체와 서버 객체간 메시지 호출시 블록킹 방지블록킹 방지 비동기 메시지 호출을 사용한 비동기 메시지 호출을 사용한 데드록 방지데드록 방지

메모리 상주 데이터베이스 사용메모리 상주 데이터베이스 사용 성능 향상과 데이터 처리의 일관성 유지성능 향상과 데이터 처리의 일관성 유지 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능

전역 데이터 관리 모듈 설계전역 데이터 관리 모듈 설계 관리의 효율성과 성능 향상관리의 효율성과 성능 향상

전역 질의문 파싱 로직 구현전역 질의문 파싱 로직 구현 하나 이상의 시스템에서 관리하는 데이터베이스에 대한 하나 이상의 시스템에서 관리하는 데이터베이스에 대한

전역 질의문 파싱 가능전역 질의문 파싱 가능

Page 30: CORBA  기반에서 멀티–데이터베이스 시스템의 설계 및 구현

3030DC & DB LabDC & DB Lab

결 론결 론결 론결 론

향후 연구 내용향후 연구 내용

전역 질의문 파싱을 위한 알고리즘에 관한 연구전역 질의문 파싱을 위한 알고리즘에 관한 연구

C++C++ 과 과 OTSOTS 를 이용한 비즈니스 서비스 계층 구현를 이용한 비즈니스 서비스 계층 구현

관찰자 패턴을 이용한 관찰자 패턴을 이용한 CORBA CORBA 객체의 부하균형에 관한 객체의 부하균형에 관한

연구연구

향후 연구 내용향후 연구 내용

전역 질의문 파싱을 위한 알고리즘에 관한 연구전역 질의문 파싱을 위한 알고리즘에 관한 연구

C++C++ 과 과 OTSOTS 를 이용한 비즈니스 서비스 계층 구현를 이용한 비즈니스 서비스 계층 구현

관찰자 패턴을 이용한 관찰자 패턴을 이용한 CORBA CORBA 객체의 부하균형에 관한 객체의 부하균형에 관한

연구연구