Title: DBLP
1(No Transcript)
2(No Transcript)
3(No Transcript)
4(No Transcript)
5(No Transcript)
6(No Transcript)
7(No Transcript)
8(No Transcript)
9DBLP database
1.
DBLP Web Site Search Pages
User Query
Info n
2.
3.
User Knowledge
Info1
Info2
10(No Transcript)
11DBLP database
Multiple Authors List Page
(Unique Author Data Page)
12Multiple Authors List Page
Hyperlinks to individual data pages
13Main Author
Home Page
Table Data
14DBLP database
Multiple Authors List Page
(Unique Author Data Page)
15Unique Author Data Page
16Overview of the Java SQL Wrapper Class
1. User inputs
A
HTML Author Title Parsers
SQL Parser
ltHTMLgt (Single Title) ltTDgtdata datalt/TDgt ...lt/HT
MLgt
SQL String
Sigmod Author Title Search Web pages
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
B
(Store Articles Method)
2. Send SQL Method Builds a database for the
query in Oracle
C
3. Query sent to Oracle
Oracle
(QueryDB Method)
D
17A
The SQL Query is parsed, and requests for Author
and Title views are sent to the respective web
pages. The web pages return streams of HTML
which are then parsed to extract the data.
Sigmod Author Search page
SQL Parser
ltSUBMITgt Name Alice This_String_Skipped ltSUBMITgt
Title Ways to.. This_String_Skipped This_String
_Skipped
Alice
ltSUMITgt Name Alice
Ways to..
Sigmod Title Search page
(SQL from user)
(HTML to Parsers)
18B.1
Parse Author
(Zoom)
Sigmod Author Search page
Single Author or List Page
(to Oracle DB)
Parse List
Parse Title
The HTML returned from querying Search Author
depends on whether the requested name is unique
in the database. If it is unique, an HTML page
with data about that author is returned.
Otherwise a list of hyperlinks to matching author
names is returned. Parse List determines what
kind of page has been returned then if it is a
list page, extracts each of the author URLs and
returns a vector of input streams to each of
those authors pages.
Sigmod Title Search page
ltHTMLgt (Single Title) ltTDgtdata datalt/TDgt ...lt/HT
MLgt
(Keyword queries from SQL Parser)
19Single Author Data page
B.2
Parse Author
ltHTMLgt (Single Author) ltTDgtdata datalt/TDgt ...lt/H
TMLgt
ltHTMLgt (Single Author) ltTDgtdata datalt/TDgt ...lt/H
TMLgt
Parse List
Sigmod Author Search page
ltHTMLgt (Single Author1) ltTDgtdata datalt/TDgt ...lt/
HTMLgt
OR
Vector of Authors
Parse Author
ltHTMLgt (Single Author2) ltTDgtdata datalt/TDgt ...lt/
HTMLgt
Multiple Author List page
Author1
ltHTMLgt ltLIgt Author1lt/LIgt ltLIgtAuthor2lt/LIgt ...lt/
HTMLgt
Author2
Parse List
Author3
ltHTMLgt (Single Author3) ltTDgtdata datalt/TDgt ...lt/
HTMLgt
Parse Title
Sigmod Title Search page
ltHTMLgt (Single Title) ltTDgtdata datalt/TDgt ...lt/HT
MLgt
20Store Articles Method
C
Results Vector Tags Values
Prepared Piped SQL Statements
Parse Author
Author
Alice Kent
Author
Joe Stevens
Author
Kim Lee
Insert into author values (automatic id, ?, ?)
Insert into article values (automatic id, ?, ?,
?)
Results Vector Tags Values
Insert into rel values (select author_id..)
Parse Title
Title
Databases
Public
ICDE 1999
Page
287
Oracle
(Query Oracle for Author Article IDs)
21D
QueryDB Method
SQLWrapper Class
Client Browser
QueryDB Method
AuthID
Name
Alice..
87219
RMI
Joe Sl..
53882
...connection.prepareStatement (SQL)
Oracle
Java Applet
...rs stmt.executeQuery ()
Original SQL String
//iterates through records in rs to build a
String containing the resulting data//
22Overview of the Java SQL Wrapper Class
1. User inputs
A
HTML Author Title Parsers
SQL Parser
ltHTMLgt (Single Title) ltTDgtdata datalt/TDgt ...lt/HT
MLgt
SQL String
Sigmod Author Title Search Web pages
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
ltHTMLgt (Single Title) ltTDgtdata datalt/TD
gt ...lt/HTMLgt
B
(Store Articles Method)
2. Send SQL Method Builds a database for the
query in Oracle
C
3. Query sent to Oracle
Oracle
(QueryDB Method)
D
23Project Architecture Overview
WrapperExp.html ltHTMLgt. ... ...lt/HTMLgt
DBDescript.html ltHTMLgt. ... ...lt/HTMLgt
Personal Web Server (Scarlet.wpi.edu)
HTTP
Index.html ltHTMLgt. ... ...lt/HTMLgt
ParseAuthor.jjt
The Wrapper Class
ParseList.java
Client Browser
RMI
SQLWrapper.java ..sendSQL() ..queryDB()
Java Server
Java Applet
Oracle
24Intuitive RMI
Dining Guide (Registry)
Naming.lookup (what restaurants)
Reg.rebind(CatchyName, myRestaurant)
The Head Chef (Server Application)
The Menu (Interface)
The Diner (Client Application)
(Implements)
Servants Waiters (Rmic Stubs Skeletons)
25RMI Nitty-Gritties (or Write--Compile--Run)
Must
-Be Public
-Extend java.rmi.Remote
-Throw java.rmi.RemoteException
Html Java Source Files(4) Remote Interface
Remote Object Server Client Applet
HTML page to load Applet
-Be Serializable
-Implement 1() Remote Interfaces
-Extend java.rmi.UnicastRemoteObject (or export
object explicitly) -Create install a
Security Manager -Create Register 1()
Remote Object
26RMI Nitty-Gritties (or Write--Compile--Run)
Compiles Source Code to Create Executable Class
Files
From Command Line Javac myRestaurant.java Rmic
myRestaurant
Generates Stubs Skeletons
27RMI Nitty-Gritties (or Write--Compile--Run)
Starts Registry on port or 1099 by default
From Command Line Start RmiRegistry
port Java myRestaurant
Runs Java Server application
Load Applet in Browser
28Cookies
import netscape.javascript. init()
QueryServer.java saveToList(string
cookie..) deleteFunction (string
cookie..) ... getSavedList (string cookie..) ...
QueryApplet.java
RMI
CookieCode.. ...CookieCode
JSObject method calls
Local File I/O
Index.html ltHTMLgt
ltHEADgt javaScript Function
setCookie Function getCookie Function
delCookie Function returnTime lt/HEADgt
ltApplet codeQueryApplet.class .
.. MAYSCRIPTgt lt/Appletgt ...lt/HTMLgt
ClientQueries (Folder)
Cookie1.txt
Cookie2.txt
Cookie3.txt
29Cookie Code
Cookie String (Applet Global Variable)
local_host_name (from static method)
TimeStamp (from JavaScript returnTime
)
String cookie try cookie InetAddress.getLocalH
ost().toString() catch(UnknownHostExcep
tion uhe)cookie "Unknown Host" if (
cookie.indexOf("/") ! -1 ) cookie
cookie.substring(0, cookie.indexOf('/'))
JSObject win JSObject.getWindow(this)
JSObject doc (JSObject) win.getMember("document"
) Object Arg "client"
String ClientCookie (String) win.call("getCookie
", Arg) if (ClientCookie.equals("undefined"))
String time (String)
win.call("returnTime", null) int
begin time.indexOf(',') 1 int
end time.indexOf('U')-1 time
time.substring(begin, end) time
time.replace(' ', '_') time
time.replace('', '_') time
cookie time Object Args
"client", time , new Integer(30)
win.call("setCookie", Args) cookie
(String) win.call("getCookie", Arg)
else cookie ClientCookie
30Swing Tables
JComponent
TableModel Listener
ListSelection Listener
TableColumn ModelListener
Table ColumnModel
TableModel
JTable
DefaultTable ColumnModel
Abstract TableModel
ListSelection Model
Default TableModel
CustomModel
DefaultList SelectionModel
31The End