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
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
22DC & DB LabDC & DB Lab
목 차목 차목 차목 차 서 론서 론
연구 배경연구 배경 연구 목적연구 목적
관련 연구관련 연구 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계
구조구조 특징특징
시스템 구현시스템 구현 구현 환경구현 환경 컴포넌트들의 기능컴포넌트들의 기능 시스템 구현 화면시스템 구현 화면 시스템 동작 예시스템 동작 예
결 론결 론 결론 및 향후 연구 방향결론 및 향후 연구 방향
서 론서 론 연구 배경연구 배경 연구 목적연구 목적
관련 연구관련 연구 멀티 데이터베이스 시스템의 설계멀티 데이터베이스 시스템의 설계
구조구조 특징특징
시스템 구현시스템 구현 구현 환경구현 환경 컴포넌트들의 기능컴포넌트들의 기능 시스템 구현 화면시스템 구현 화면 시스템 동작 예시스템 동작 예
결 론결 론 결론 및 향후 연구 방향결론 및 향후 연구 방향
33DC & DB LabDC & DB Lab
서 론서 론서 론서 론 연구 배경연구 배경
데이터베이스 시스템 환경의 변화 데이터베이스 시스템 환경의 변화
연구 배경연구 배경 데이터베이스 시스템 환경의 변화 데이터베이스 시스템 환경의 변화
14 7 2
14 7 214 7 2
14 7 2이 질 성
중앙 집중된 중앙 집중된 데이터베이스 시스템데이터베이스 시스템
분산된 분산된 데이터베이스 시스템데이터베이스 시스템
통합된 사용자 뷰통합된 사용자 뷰
정보의 불일치정보의 불일치
언어 표현언어 표현 데이터 표현데이터 표현
44DC & DB LabDC & DB Lab
서 론서 론서 론서 론
연구 배경연구 배경 기존의 연구 동향기존의 연구 동향
연구 배경연구 배경 기존의 연구 동향기존의 연구 동향
JAVA APIJAVA API 인 인 JDBCJDBC 를 이용한 를 이용한 MDBS MDBS 연동에 대한 연구연동에 대한 연구
위치 투명성 제공위치 투명성 제공확장성과 유연성 제공확장성과 유연성 제공
이질성 극복 제한이질성 극복 제한
특정 특정 DBMS DBMS 라이브러리에 종속라이브러리에 종속 일관된 인터페이스 부재일관된 인터페이스 부재
CORBA CORBA 기반의 기반의 C++ C++ 언어를 이용한 언어를 이용한 33 계층 계층 C/S C/S 구조구조
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
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
77DC & DB LabDC & DB Lab
관련 연구관련 연구관련 연구관련 연구 객체지향 미들웨어 객체지향 미들웨어 CORBACORBA
네트워크 투명성 네트워크 투명성 - - 확장 가능한 서버 기반구조 제공확장 가능한 서버 기반구조 제공 JAVAJAVA & & 데이터베이스 미들웨어 데이터베이스 미들웨어 JDBCJDBC
구현 투명성 구현 투명성 - - 운영체제에 의존하지 않는 이식 가능한 운영체제에 의존하지 않는 이식 가능한 객체의 기반구조를 제공객체의 기반구조를 제공
ObjectWebObjectWeb 분산 환경에서 동적이고 상호작용이 가능한 분산 환경에서 동적이고 상호작용이 가능한 3-3- 계층 계층
웹 환경으로 변화웹 환경으로 변화
객체지향 미들웨어 객체지향 미들웨어 CORBACORBA 네트워크 투명성 네트워크 투명성 - - 확장 가능한 서버 기반구조 제공확장 가능한 서버 기반구조 제공
JAVAJAVA & & 데이터베이스 미들웨어 데이터베이스 미들웨어 JDBCJDBC 구현 투명성 구현 투명성 - - 운영체제에 의존하지 않는 이식 가능한 운영체제에 의존하지 않는 이식 가능한
객체의 기반구조를 제공객체의 기반구조를 제공 ObjectWebObjectWeb
분산 환경에서 동적이고 상호작용이 가능한 분산 환경에서 동적이고 상호작용이 가능한 3-3- 계층 계층 웹 환경으로 변화웹 환경으로 변화
CORBACORBA JAVAJAVA
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
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
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
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()
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()
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
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);};
};
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
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
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
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
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) 상태로 상태로
보관보관
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
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 에 입력 에 입력
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
전역 데이터의 구조
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 검색검색 클라이언트 콜백 객체의 메시지를 호출하여 전달클라이언트 콜백 객체의 메시지를 호출하여 전달
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 패널패널
2525DC & DB LabDC & DB Lab
시스템 구현시스템 구현시스템 구현시스템 구현 시스템 구현 화면시스템 구현 화면 시스템 구현 화면시스템 구현 화면
OrbixWeb Daemon OrbixWeb Daemon 실행 화면실행 화면
Servant Servant 초기화 화면초기화 화면
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
2727DC & DB LabDC & DB Lab
시스템 구현시스템 구현시스템 구현시스템 구현 시스템 동작시스템 동작 시스템 동작시스템 동작
지역 데이터베이스를 위한 지역 질의문 생성 과정지역 데이터베이스를 위한 지역 질의문 생성 과정
전역 스키마 관리를 위한 윈도우전역 스키마 관리를 위한 윈도우
2828DC & DB LabDC & DB Lab
시스템 구현시스템 구현시스템 구현시스템 구현 결과 화면결과 화면 결과 화면결과 화면
2929DC & DB LabDC & DB Lab
결 론결 론결 론결 론 3-3- 계층 멀티계층 멀티 -- 데이터베이스 시스템 구축데이터베이스 시스템 구축
지역 데이터베이스에 대한 통합된 뷰 제공지역 데이터베이스에 대한 통합된 뷰 제공 콜백 수신을 위한 객체 구현콜백 수신을 위한 객체 구현
클라이언트측에서 서버의 클라이언트측에서 서버의 메시지 호출메시지 호출을 수신을 수신 클라이언트 객체와 서버 객체간 메시지 호출시 클라이언트 객체와 서버 객체간 메시지 호출시 블록킹 방지블록킹 방지 비동기 메시지 호출을 사용한 비동기 메시지 호출을 사용한 데드록 방지데드록 방지
메모리 상주 데이터베이스 사용메모리 상주 데이터베이스 사용 성능 향상과 데이터 처리의 일관성 유지성능 향상과 데이터 처리의 일관성 유지 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능
전역 데이터 관리 모듈 설계전역 데이터 관리 모듈 설계 관리의 효율성과 성능 향상관리의 효율성과 성능 향상
전역 질의문 파싱 로직 구현전역 질의문 파싱 로직 구현 하나 이상의 시스템에서 관리하는 데이터베이스에 대한 하나 이상의 시스템에서 관리하는 데이터베이스에 대한
전역 질의문 파싱 가능전역 질의문 파싱 가능
3-3- 계층 멀티계층 멀티 -- 데이터베이스 시스템 구축데이터베이스 시스템 구축 지역 데이터베이스에 대한 통합된 뷰 제공지역 데이터베이스에 대한 통합된 뷰 제공
콜백 수신을 위한 객체 구현콜백 수신을 위한 객체 구현 클라이언트측에서 서버의 클라이언트측에서 서버의 메시지 호출메시지 호출을 수신을 수신 클라이언트 객체와 서버 객체간 메시지 호출시 클라이언트 객체와 서버 객체간 메시지 호출시 블록킹 방지블록킹 방지 비동기 메시지 호출을 사용한 비동기 메시지 호출을 사용한 데드록 방지데드록 방지
메모리 상주 데이터베이스 사용메모리 상주 데이터베이스 사용 성능 향상과 데이터 처리의 일관성 유지성능 향상과 데이터 처리의 일관성 유지 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능 지역 데이터베이스를 위한 데이터 캐쉬 서버로 활용 가능
전역 데이터 관리 모듈 설계전역 데이터 관리 모듈 설계 관리의 효율성과 성능 향상관리의 효율성과 성능 향상
전역 질의문 파싱 로직 구현전역 질의문 파싱 로직 구현 하나 이상의 시스템에서 관리하는 데이터베이스에 대한 하나 이상의 시스템에서 관리하는 데이터베이스에 대한
전역 질의문 파싱 가능전역 질의문 파싱 가능
3030DC & DB LabDC & DB Lab
결 론결 론결 론결 론
향후 연구 내용향후 연구 내용
전역 질의문 파싱을 위한 알고리즘에 관한 연구전역 질의문 파싱을 위한 알고리즘에 관한 연구
C++C++ 과 과 OTSOTS 를 이용한 비즈니스 서비스 계층 구현를 이용한 비즈니스 서비스 계층 구현
관찰자 패턴을 이용한 관찰자 패턴을 이용한 CORBA CORBA 객체의 부하균형에 관한 객체의 부하균형에 관한
연구연구
향후 연구 내용향후 연구 내용
전역 질의문 파싱을 위한 알고리즘에 관한 연구전역 질의문 파싱을 위한 알고리즘에 관한 연구
C++C++ 과 과 OTSOTS 를 이용한 비즈니스 서비스 계층 구현를 이용한 비즈니스 서비스 계층 구현
관찰자 패턴을 이용한 관찰자 패턴을 이용한 CORBA CORBA 객체의 부하균형에 관한 객체의 부하균형에 관한
연구연구