|
|
|
|
Jack, an IETM author in Montana, finishes his
first draft and needs to submit it to the Authoring Database for
review. (submitDocument()) |
|
The DBClient notices that this is the first time
Jack has accessed the database, and asks him to login. (authenticateUser(),
which is not a public method) |
|
|
|
|
After successful authentication, the DBClient
initiates a call to the DBServer to carry out the submit request. (API
undecided) |
|
Upon successful completion of the task, the ID
of the newly submitted document is returned. |
|
Jack realizes this is the last thing he needs to
do today, and logs out. (logout()) |
|
|
|
|
|
Other subsystems should only interact with the
DBClient. |
|
The DBServer creates threads for each connection
from the NetworkServer. |
|
As a result, the authentication and notification
subsystems will be thread-safe. |
|
|
|
|
It is an interface |
|
void addSubscriber(String username) |
|
String getDatatype() |
|
Collection getAuthorizedReaders() |
|
Collection getAuthorizedWriters() |
|
Collection getSubscribers() |
|
Collection getSearchableData() |
|
|
|
|
int submitDocument(Document data) |
|
Document retrieveDocument(int docID, String
datatype, boolean forReading) |
|
int updateDocument(int docID, Document data) |
|
Collection listDocuments(Collection criteria,
Collection desiredFields) |
|
|
|
|
void addSubscriber(String username, int DocID,
String datatype) |
|
String getUsername() |
|
void logout() |
|
Javadoc: http://www.contrib.andrew.cmu.edu/~parkison/SE/javadoc/index.html |
|
|
|
|
Client: PEDD, desktop – we’re not the bottleneck
in hardware needs! |
|
Server: Dedicated STARS DB Server with 100-300
GB of disk space. |
|
Client/Server: Any network connection, but the
faster, the better. |
|
|
|
|
Client: JavaRMI |
|
Server: JavaRMI. Also, LotusNotes must be running for authentication and
notification. The database
subsystem also needs a database backend to store all of the data. |
|
|
|
|
LotusNotes has a 254 character limit on field
sizes when using JDBC. |
|
LotusNotes only supports JDBC 1.1. |
|
Workflow is currently looking at other DBMS’s to
use as the backend. |
|
|
|
|
The fields need to be specified to the Workflow
team ahead of time. |
|
Workflow will be adding additional fields,
mostly for internal management. |
|
These fields will be accessible by other
subsystems. |
|
|
|
|
previous_version |
|
current_writer |
|
serialized_data |
|
These field names cannot be used by other
subsystems! |
|
|
|
|
Working on implementation |
|
Interface to front end is defined and ready to
implement |
|
Back end server access to database is proceeding
in earnest |
|
Authentication and Notification subsystem are
somewhat lacking in code |
|
RMI is in the works |
|
|
|
|
|
Is RMI the best way to do the networking? |
|
What database will replace LotusNotes? |
|
How do we deal with dead network connections? |
|
How are we going to implement and test all of
this in a timely manner? |
|