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? |