corba n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CORBA 기반에서 멀티–데이터베이스 시스템의 설계 및 구현 PowerPoint Presentation
Download Presentation
CORBA 기반에서 멀티–데이터베이스 시스템의 설계 및 구현

Loading in 2 Seconds...

play fullscreen
1 / 30

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


  • 178 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CORBA 기반에서 멀티–데이터베이스 시스템의 설계 및 구현' - wells


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
corba

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

A Design and Implementation of a Multi-database System

Based on CORBA

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

안 길 수

slide2
목 차
  • 서 론
    • 연구 배경
    • 연구 목적
  • 관련 연구
  • 멀티 데이터베이스 시스템의 설계
    • 구조
    • 특징
  • 시스템 구현
    • 구현 환경
    • 컴포넌트들의 기능
    • 시스템 구현 화면
    • 시스템 동작 예
  • 결 론
    • 결론 및 향후 연구 방향
slide3

언어 표현

데이터 표현

정보의 불일치

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

통합된 사용자 뷰

이 질 성

중앙 집중된

데이터베이스 시스템

분산된

데이터베이스 시스템

slide4
서 론
  • 연구 배경
    • 기존의 연구 동향

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

위치 투명성 제공

확장성과 유연성 제공

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

이질성 극복 제한

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

slide5

Global

User

Local

User

Local

User

Multi DBMS

DBMS

1

DBMS

n

DBMS

2

DBMS

3

Database

2

Database

1

Database

3

Database

n

서 론
  • 연구 배경
    • 멀티-데이터베이스 시스템
slide6

Web Browser

html

Applet

HTTP

HTTPD

JDBC

Driver

JDBC

O

R

B

Driver

Driver

JDBC

Manager

Names

IIOP

classes

Driver

JDBC

OWDJ

TCP / IP

TCP / IP

TCP / IP

: Applet

: CORBA Servant

: Java Database

: RDBMS

Applet

: Global Schema

: html page

: Java Object

: COS

O

R

B

서 론
  • 연구 목적
slide7
관련 연구
  • 객체지향 미들웨어 CORBA
    • 네트워크 투명성 - 확장 가능한 서버 기반구조 제공
  • JAVA & 데이터베이스 미들웨어 JDBC
    • 구현 투명성 - 운영체제에 의존하지 않는 이식 가능한 객체의 기반구조를 제공
  • ObjectWeb
    • 분산 환경에서 동적이고 상호작용이 가능한 3-계층 웹 환경으로 변화

ObjectWeb

CORBA

JAVA

slide8
관련 연구
  • UML(Unified Modeling Language)
    • 기존의 객체지향 모델링 방법의 통합
      • Grady Booch의 Booch 기법, Jim Rumbaugh의 OMT 기법, Jocobson의 OOSE 기법 등
    • 4 종류의 View

Use Case View

Deployment View

Logical View

Component View

slide9

: 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)

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

: Server

Application

:xCon

:Global Schema

:GSI

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

: Server

Application

:xCon

:Global

Schema

:GSI

: Table

Details

: 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)

9 : GSI(Vector)

10 : TableDetails()

11 : fetchMetaData(GSI, Vector, String)

Return TableDetails

12 : viewResultSet()

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

: xGui

DBServant

: Client

Applet

: Call Back

Impl

:Transmit

Helper

:Call

Back

: Server

Application

:DB

Interface

:Transmit

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)

9 : xGrid.setHead(String)

10 : addRow(String)

11 : xGrid.addRow(String)

12 : repaint()

13 : xGrid.repaint()

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

2 : orb.connect(CallBackImpl)

3 : TransmitHelper.narrow(DBServant)

: Client

Applet

:Transmit

Helper

: Server

Application

1: Call BackImpl(ClientApplet)

4 : transQuery(CallBack, String)

:Transmit

9 : xGrid.setHead(String)

8 : setHead(String)

11 : xGrid.addRow(String)

10 : addRow(String)

13 : xGrid.repaint()

12 : repaint()

: xGui

DBServant

: Call Back

Impl

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

6 : createTable(String)

7 : exeQuery(String)

:Call

Back

:DBInterface

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

: Client

Applet

: Call Back

Impl

:Transmit

Helper

: Server

Application

: xGui

DBServant

:Global

Schema

:DB

Interface

: user

: administrator

: RDBMS

1: ServerApplication()

2 : orb.bind(DBServant)

3 : xGuiDBServant()

4 : init()

5 : narrow(DBServant)

6 : CallBackImpl(ClientApplet)

7 : ClientApplet()

8 : transQuery(CallBack, String)

9 : fetchMetaData(GSI, Vector, String)

10 : DBInterface(String, String, String, String, String, String, String, xGuiDBServant)

11 : run()

12 : executeQuery(String)

13 : createTable(String)

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()

slide14
멀티-데이터베이스 시스템의 설계
  • 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);

};

};

slide15

<< Actor >>

RDBMS

(from Use Case View)

xGuiDBServant

(from ServerApp)

ClientApplet

(from ClientApp)

ServerApplication

(from ServerApp)

CallBackImpl

(from ClientApp)

<< Interface >>

Transmit

(from IDLFiles)

DBInterface

(from ServerApp)

<< Interface >>

CallBack

(from ClientApp)

xCon

(from ServerApp)

GlobalSchema

(from ServerApp)

xGrid

(from ClientApp)

GSI

(from ServerApp)

LogFrame

(from ClientApp)

TableDetails

(from ServerApp)

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

User Service

Business Service

Data Service

class diagram

Panel

(from awt)

xGrid

bDrag:boolean

xDrag:int

cDrag:int

iFirst : int

xGrid()

setHead()

reshape()

repaint()

addRow()

adjustScroll()

paint()

CallBackImpl

update()

LogFrame

CallBackImpl()

fComponetsAdjusted:boolean

setHead()

addRow()

repaint()

sendMsg()

Naming Context

(from IDLFiles)

xGrid()

setHead()

reshape()

repaint()

addRow()

LogFram_WindowClosing()

Class Diagram : 사용자 서비스 계층

Applet

(from applet)

<<Interface>>

CallBack

(from applet)

setHead()

addRow()

repaint()

sendMsg()

_deref()

ClientApplet

$iMaxRecent:int

iRecent:int

_Call BackImplBase

(from IDLFiles)

iRecentCount:int

2

gResult

init()

gRecent

_CallBackImplBase()

butLog_MouseClicked()

_CallBackImplBase()

butExecute_MouseClicked()

_CallBackImplBase()

action()

_CallBackImplBase()

setRecent()

ClientApplect()

_deref()

+cliRef

logFrame

orb

+cliRef

-this$0

rootContext

xConContext

ORB

(from CORBA)

2

srvRef

<<Interface>>

Transmit

(from IDLFiles)

-this$0

transQuery()

SymWidow

SymMouse

_deref()

class diagram1

ServerApplication

<<Interface>>

Transmit

Frame

(from awt)

(from IDLFiles)

main()

Thread

xCon

ServerApplication()

(from lang)

transQuery()

$ table_number : int

_deref()

$ base_time : long

_TransmitImplBase

(from IDLFiles)

xCon()

NamingContext

main()

_TransmitImplBase()

quitXCon()

(from CosNaming)

_deref()

createSchemaButton()

DBInterface

createCommitButton()

dropShcemaButton()

xGuiDBServant

DBInterface()

run()

xGuiDBServant()

exeQuery()

createTable()

GlobalSchema

transQuery()

GlobalSchema()

GlobalSchema()

viewResult()

Serializable

marshallMetaData()

(from io)

fetchMetaData()

hConnection

Connection

(from hSql)

(from sql)

GSI

DataInputStream

<<Interface>>

(from io)

pushData()

Statement

CallBack

GSI()

(from sql)

(from IDLFiles)

TableDetails

setHead()

addRow()

TableDetails()

ResultSet

repaint()

hDatabase

Vector

sendMsg()

(from sql)

(from hSql)

_deref()

(from util)

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

+adminFrame

+orb

$rootContext

$xConContext

ORB

(form CORBA)

+DBServant

1..3

+adminFrame

+gsm

+DB

+gsm

+con

+$dbServant

+stmt

+cli Ref

gsi

is

+rs

$d Database

+rows

+tds

+tds

rows

slide18

JDBC

R-DBMS

JDBC

Data service

Tier 3

Tier 3

R-DBMS

R-DBMS

R-DBMS

R-DBMS

R-DBMS

TCP / IP

: Server Application

: DBInterface

: DBInterface

: DBInterface

: DBInterface

: Server Application

: xCon (System Manager GUI)

: DBInterface

: DBInterface

: xCon (System Manager GUI)

Business service

Tier 2

: hSql

: xGuiDBServant

: GlobalSchema

: G S I

: TDS

CORBA / IIOP

: xGuiDBServant

: GlobalSchema

CORBA / IIOP

: G S I

: TDS

TCP / IP

: hSql

User service

:xGrid

:xGrid

: Log

Frame

: Client Applet

: Client Applet

: Log

Frame

: CallBackImpl

: CallBackImpl

Tier 1

멀티-데이터베이스 시스템의 설계
  • 멀티-데이터베이스 시스템 배치도
slide19
멀티-데이터베이스 시스템의 설계
  • 시스템 설계상의 특징
    • TCP/IP 기반에서 ORB간 통신을 위해 IIOP 프로토콜 사용
      • ORB간의 상호 운용성 증대
      • 플랫폼(ORB)에 독립적인 애플리케이션 생성
    • 데드록과 블록된 메소드 호출 방지
      • 클라이언트에 콜백 객체 사용
    • 각 지역 데이터베이스로부터 질의 결과는 비즈니스 서비스 계층에 존재하는 메모리 상주 데이터베이스에 테이블로 보관
    • 전역 데이터는 자바의 직렬화 가능한 객체를 사용
      • 파일 시스템 상에 영속 객체(Persistent Object) 상태로 보관
slide20

Informix

Oracle

Oracle

시스템 구현
  • 구현환경
  • IONA OrbixWeb 3.1
  • JDK 1.2
  • tinyweb
  • JDBC
  • Informix
  • Oracle

Windows NT 4.O

Windows NT 4.O

HP UX 10.20

slide21
시스템 구현
  • 컴포넌트들의 기능 - Business Service 계층
    • ServerApplication : CORBA 서버 객체
      • Servant인 xGuiDBServant를 네이밍 서비스에 등록
      • xGuiDBServant를 초기화
    • xCon(Cross Connector)
      • MDBS의 전역 데이터 관리를 위한 사용자 인터페이스
    • hSql
      • 메모리 상주 데이터베이스
      • 지역 데이터베이스들의 쿼리 실행 결과를 수집 및 재 가공
    • DBInterface
      • 자바의 쓰레드를 구현 - 지역 데이터베이스 동시 접속
      • 질의 처리결과를 hSql에 전송할 쿼리 스트링으로 생성
      • 지역 데이터베이스의 질의 처리 결과를 xGuiDBServant 객체의 메시지에 쿼리 스트링으로 전송하여 hSql에 입력
slide22

Server

Remote

Server

Server

Table

Name

Table

Name

Table

Name

Driver

Name

Driver

Name

Driver

Name

User

Name

User

Name

User

Name

Passwd

Passwd

Passwd

Sub-

protocol

Sub-

Protocol

Sub-

protocol

Sub-

Name

Sub-

Name

Sub-

Name

시스템 구현
  • 컴포넌트들의 기능 - Business Service 계층
    • GSI(Global Schema Information)
      • 전역 데이터베이스의 이름을 파일 이름으로하여 파일 시스템상에 전역 데이터를 보관
    • SIM(Schema Information Manager)
      • 전역 데이터 관리
      • GSI 객체를 파일 상태로 변환(Marshalling)
      • 파일 상태의 GSI를 개체화 - 자료 입력/삭제/검색
    • TDS(TableDetailS)
      • GSI의 데이터인 전역 데이터를 xCon 객체에 전달하기 위한 매개 객체

전역 데이터의 구조

slide23

시스템 구현

  • 컴포넌트들의 기능 - Business Service 계층
    • xGuiDBServant
      • 전역 질의문 분해 및 재 조합
        • SQL 키워드 사이의 스트링을 추출하여 토큰화  테이블 이름을 이용하여 지역 질의문으로 조합
        • 전역 질의문 파싱시 지역 데이터베이스는 3개까지로 제한
      • 전위 처리
        • 전역 질의문으로부터 지역 질의문을 재조합
        • 후위 처리단계에서 hSql의 테이블을 검색하기 위한 질의문 조합
        • DBInterface 객체에 지역 질의문을 전달하고 쓰레드를 실행
      • 후위 처리
        • 전위 처리단계에서 조합된 질의문을 이용해 hSql 검색
        • 클라이언트 콜백 객체의 메시지를 호출하여 전달
slide24

시스템 구현

  • 컴포넌트들의 기능 - User Service 계층
    • ClientApplet
      • CORBA 클라이언트
      • CallBackImpl 객체를 초기화
      • 서버 객체에게 전역 질의문과 콜백의 객체 참조를 전달
    • CallBackImpl
      • DBServant로부터 최종 결과를 전달받기 위한 코바 객체
      • DBServant는 CallBackImpl 객체의 메시지를 호출하여 xGrid 컴포넌트에 결과를 출력
    • xGrid
      • 사용자에게 결과를 보이기 위한 Grid 패널
slide25
시스템 구현
  • 시스템 구현 화면

OrbixWeb Daemon 실행 화면

Servant 초기화 화면

slide26

1

Gil_sou Ahn

Chonbuk

Kimje

2

Eun_sun Ryu

Chonnam

Mokpo

CUSTOMER

3

Hyon_chol Lee

Chonbuk

Iksan

4

Chang_won Jung

Chonbuk

Kunsan

c_bal

5

Dong_hun Cho

Chonbuk

Iksan

green

c_id

balance

c_inf

1

10000

yklee

c_id

name

address

2

20000

c_job

amigo.

Hdsys.co.kr

3

30000

c_id

job

sex

age

company

4

40000

5

50000

Amigo

1

Sails man

male

28

SS

2

janitor

male

49

HD

3

guide

female

28

NB

4

House keeping

female

36

5

Sails man

male

39

SS

Informix

Oracle

Oracle

green

Amigo.hdsys.co.kr

yklee

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

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

시스템 구현
  • 시스템 동작

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

slide28
시스템 구현
  • 결과 화면
slide29
결 론
  • 3-계층 멀티-데이터베이스 시스템 구축
    • 지역 데이터베이스에 대한 통합된 뷰 제공
  • 콜백 수신을 위한 객체 구현
    • 클라이언트측에서 서버의 메시지 호출을 수신
    • 클라이언트 객체와 서버 객체간 메시지 호출시 블록킹 방지
    • 비동기 메시지 호출을 사용한 데드록 방지
  • 메모리 상주 데이터베이스 사용
    • 성능 향상과 데이터 처리의 일관성 유지
    • 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능
  • 전역 데이터 관리 모듈 설계
    • 관리의 효율성과 성능 향상
  • 전역 질의문 파싱 로직 구현
    • 하나 이상의 시스템에서 관리하는 데이터베이스에 대한 전역 질의문 파싱 가능
slide30
결 론
  • 향후 연구 내용
    • 전역 질의문 파싱을 위한 알고리즘에 관한 연구
    • C++과 OTS를 이용한 비즈니스 서비스 계층 구현
    • 관찰자 패턴을 이용한 CORBA 객체의 부하균형에 관한 연구