Title: CORBA ???? ??
1CORBA ???? ???????? ???? ?? ? ??
A Design and Implementation of a Multi-database
System Based on CORBA
- ????? ?????? DC DB Lab
- ? ? ?
2? ?
- ? ?
- ?? ??
- ?? ??
- ?? ??
- ?? ?????? ???? ??
- ??
- ??
- ??? ??
- ?? ??
- ?????? ??
- ??? ?? ??
- ??? ?? ?
- ? ?
- ?? ? ?? ?? ??
3? ?
??? ??? ?
? ? ?
?? ??? ?????? ???
??? ?????? ???
4? ?
CORBA ??? C ??? ??? 3?? C/S ??
?? ??? ?? ???? ??? ??
- ?? DBMS ?????? ??
- ??? ????? ??
??? ?? ??
JAVA API? JDBC? ??? MDBS ??? ?? ??
5? ?
6? ?
7?? ??
- ???? ???? CORBA
- ???? ??? - ?? ??? ?? ???? ??
- JAVA ?????? ???? JDBC
- ?? ??? - ????? ???? ?? ?? ??? ??? ????? ??
- ObjectWeb
- ?? ???? ???? ????? ??? 3-?? ? ???? ??
ObjectWeb
CORBA
JAVA
8?? ??
- UML(Unified Modeling Language)
- ??? ???? ??? ??? ??
- Grady Booch? Booch ??, Jim Rumbaugh? OMT ??,
Jocobson? OOSE ?? ? - 4 ??? View
Use Case View
Deployment View
Logical View
Component View
9xCon ?? ?????? ???? ??
Server Application
xCon
Global Schema
GSI
10??-?????? ???? ??
- 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()
11??-?????? ???? ??
- Sequence Diagram ??? ??? ??? ??
Client Applet
Call Back Impl
Transmit Helper
Call Back
Server Application
xGui DBServant
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()
12??-?????? ???? ??
- 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()
Call Back Impl
xGui DBServant
5 DBInterface(String, String, Sting, String,
String, String, xGuiDBServant)
6 createTable(String)
7 exeQuery(String)
Call Back
DBInterface
13??-?????? ???? ??
- Sequence Diagram ?? ?????? ??
Client Applet
Call Back Impl
Transmit Helper
Global Schema
Server Application
xGui DBServant
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()
14??-?????? ???? ??
module xCon3 interface CallBack
typedef sequence ltstringgt hdSeq typedef
sequence ltstringgt 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)
15??-?????? ???? ??
User Service
Business Service
Data Service
16Class Diagram ??? ??? ??
Applet (from applet)
ltltInterfacegtgt CallBack (from applet)
setHead()
addRow()
repaint()
sendMsg()
_deref()
ClientApplet
iMaxRecentint
iRecentint
_Call BackImplBase (from IDLFiles)
iRecentCountint
2
gResult
init()
butLog_MouseClicked()
_CallBackImplBase()
gRecent
butExecute_MouseClicked()
_CallBackImplBase()
action()
_CallBackImplBase()
setRecent()
_CallBackImplBase()
ClientApplect()
_deref()
cliRef
logFrame
orb
cliRef
-this0
rootContext xConContext
ORB (from CORBA)
2
srvRef
ltltInterfacegtgt Transmit (from IDLFiles)
-this0
transQuery()
SymWidow
SymMouse
_deref()
17Class 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
18??-?????? ???? ??
19??-?????? ???? ??
- ??? ???? ??
- TCP/IP ???? ORB? ??? ?? IIOP ???? ??
- ORB?? ?? ??? ??
- ???(ORB)? ???? ?????? ??
- ???? ??? ??? ?? ??
- ?????? ?? ?? ??
- ? ?? ????????? ?? ??? ???? ??? ??? ???? ??? ??
??????? ???? ?? - ?? ???? ??? ??? ??? ??? ??
- ?? ??? ?? ?? ??(Persistent Object) ??? ??
20??? ??
- IONA OrbixWeb 3.1
- JDK 1.2
- tinyweb
- JDBC
- Informix
- Oracle
Windows NT 4.O
Windows NT 4.O
HP UX 10.20
21??? ??
- ?????? ?? - Business Service ??
- ServerApplication CORBA ?? ??
- Servant? xGuiDBServant? ??? ???? ??
- xGuiDBServant? ???
- xCon(Cross Connector)
- MDBS? ?? ??? ??? ?? ??? ?????
- hSql
- ??? ?? ??????
- ?? ???????? ?? ?? ??? ?? ? ? ??
- DBInterface
- ??? ???? ?? - ?? ?????? ?? ??
- ?? ????? hSql? ??? ?? ????? ??
- ?? ??????? ?? ?? ??? xGuiDBServant ??? ???? ??
????? ???? hSql? ??
22??? ??
- ?????? ?? - Business Service ??
- GSI(Global Schema Information)
- ?? ??????? ??? ?? ?????? ?? ????? ?? ???? ??
- SIM(Schema Information Manager)
- ?? ??? ??
- GSI ??? ?? ??? ??(Marshalling)
- ?? ??? GSI? ??? - ?? ??/??/??
- TDS(TableDetailS)
- GSI? ???? ?? ???? xCon ??? ???? ?? ?? ??
?? ???? ??
23??? ??
- ?????? ?? - Business Service ??
- xGuiDBServant
- ?? ??? ?? ? ? ??
- SQL ??? ??? ???? ???? ??? ? ??? ??? ???? ??
????? ?? - ?? ??? ??? ?? ??????? 3???? ??
- ?? ??
- ?? ??????? ?? ???? ???
- ?? ?????? hSql? ???? ???? ?? ??? ??
- DBInterface ??? ?? ???? ???? ???? ??
- ?? ??
- ?? ?????? ??? ???? ??? hSql ??
- ????? ?? ??? ???? ???? ??
24??? ??
- ?????? ?? - User Service ??
- ClientApplet
- CORBA ?????
- CallBackImpl ??? ???
- ?? ???? ?? ???? ??? ?? ??? ??
- CallBackImpl
- DBServant??? ?? ??? ???? ?? ?? ??
- DBServant? CallBackImpl ??? ???? ???? xGrid
????? ??? ?? - xGrid
- ????? ??? ??? ?? Grid ??
25??? ??
OrbixWeb Daemon ?? ??
Servant ??? ??
26??? ???? ??? ?? ?????? ???? ??
27??? ??
?? ??????? ?? ?? ??? ?? ??
28??? ??
29? ?
- 3-?? ??-?????? ??? ??
- ?? ??????? ?? ??? ? ??
- ?? ??? ?? ?? ??
- ???????? ??? ??? ??? ??
- ????? ??? ?? ??? ??? ??? ??? ??
- ??? ??? ??? ??? ??? ??
- ??? ?? ?????? ??
- ?? ??? ??? ??? ??? ??
- ?? ??????? ?? ??? ?? ??? ?? ??
- ?? ??? ?? ?? ??
- ??? ???? ?? ??
- ?? ??? ?? ?? ??
- ?? ??? ????? ???? ??????? ?? ?? ??? ?? ??
30? ?
- ?? ?? ??
- ?? ??? ??? ?? ????? ?? ??
- C? OTS? ??? ???? ??? ?? ??
- ??? ??? ??? CORBA ??? ????? ?? ??