Team Members: William Busby, Lindsey Gray, & David Meffe

Download Report

Transcript Team Members: William Busby, Lindsey Gray, & David Meffe

Team Members: William Busby, Lindsey Gray, &
David Meffe
Sponsor: Lockheed Martin Reconnaissance Systems
Bill Rawlings and Marvin Kliene
1
Team Members and Roles
• William Busby: Team Leader, webmaster
• Lindsey Gray: Communicator
• David Meffe: Recorder
Lindsey Gray
2
Project Description
• Retrieval and display of XML formatted
SAR metadata in intranet environment
• SAR metadata and imagery stored in a
relational database
• XML tags for metadata
• Style sheets to display metadata
• Web-based retrieval and display
Lindsey Gray
3
Requirements
• Provide web-based access to Synthetic
Aperture Radar(SAR) metadata
• Storage & Retrieval of SAR metadata in DB
• Use Extensible Markup Language(XML)
tags to describe metadata
• Insert SAR metadata into database using
parsing & insertion routines.
David Meffe
4
Changed Requirements
• Requirements that have changed
– Parser routines: incorrect format
– Views: How much data to be viewed on the
web site at a time.
– Shunt: Added in to retrieve and view XML
generated data without use of web browser.
David Meffe
5
Design Method
• Incremental approach
– Process loops back to the
requirements in the
architectural, design,
implement and testing
stages
– Ensures the requirements
are a part of each step in
the procedure
Problem Statement
Requirements
Architecture
Design
Implementation
Testing
David Meffe
6
Design Approach
• Best choice & has worked out well
• Developed project in stages
– Each piece as modular and self contained as
possible
– Parsing and Insertion module is completely standalone
• Allows for errors detected early on
David Meffe
7
Database
• Tables
– Original: 6
– Actual: 9
• Changes
– Handle files with multiple records
– Additional constraints
• Oracle8i met requirements
William Busby
8
Database: Table Relationships
SARIMAGE
CNFDATA
HDRDATA
ANTDATA
ANTRECORDS
IMUDATA
IMURECORDS
IFMUDATA
IFMURECORDS
William Busby
9
Parsing/Insertion
• 8 Classes
– 6 for data storage
– 1 for exception handling
– 1 driver
• Run from command line
– User input information
• Image ID
• Location of binary files
• Location of image
– Data rollback on insertion errors
William Busby
10
Parsing/Insertion
• Problems encountered
•Solutions
– Computer failure
– Invalid file formats
–Oracle8i account at CBA
–Replacement computer
–Received updated formats
• Other Issues
– Underestimated size of files
– Overconfidence delayed actions
• Effect => over 2 weeks behind schedule
William Busby
11
Backend Architecture
• Backend consists of 4 classes
– ConnectionPool – Maintains several
connections to the database
– JDBCException – Custom Exception handling
class that passes exceptions to the Servlets
– SQLRequest – Generates Result Set from input
query string
– XMLDocGeneration – Generates XML
Document based on Result Set.
David Meffe
12
Architecture Diagram
XMLDocGeneration
ConnectionPool
Void DocGen(sql, datatype, out)
Void print(rs, out, datatype)
SQLRequest
SQLRequest(String sql)
Void setResultSet(String sql)
ResultSet getResultSet( )
String SQL
Connection Con
ResultSet rs
ConnectionPool cp
ConnectionPool( )
Static ConnectionPool getInstance( )
Connection getConnection( )
Void returnConnection(Connection)
Static String SID
Static String USER
Static String PWD
Static String PORT_NUM
Static String DB_HOST
Static String DRVIER
Static String MAX_SIZE
Static String CONNECT_STR
Hashtable Connections
JDBCException
JDBCException(String ,
Exception)
JDBCException(String)
Exception getConException()
David Meffe
Oracle8i
13
ConnectionPool & SQLRequest
•
•
•
•
Connections stored in Hashtable
Simple to implement using JDBC
Several Online references
Exception handling has changed from an
inherited class to separate custom class
• ConnectionPool Implements the Singleton
Pattern
David Meffe
14
XMLDocGeneration & Exception
• XMLDocGeneration
– Generates XML document from a Result Set
– Too many online references
• JDBCException
– New class that handles all exceptions
generically for the ConnectionPool and
SQLRequest
David Meffe
15
Front-End Architecture
• Consists of XSL, Servlets, & On-line help
Servlets(3)
DoGet();
DoPost();
Redirect();
SQLRequest
ImageID
ViewType
BaseURL
ServletURL
Back-End
XML Documents
XSL
main.xsl
ant.xsl
cnf.xsl
ifmu.xsl
imu.xsl
Lindsey Gray
On-Line Help
On Line Help
Menu
Main
Help
Index
16
Servlets
• Good Points
– One team member has significant experience
with servlets
• All is going well with this module
– Hacked previous servlet application to establish
framework for rapid development
• Used this module to make up for lost time
Lindsey Gray
17
XSL
• Good Points
– Easy to pick up
• Problems
– Displaying multiple XSL files at one time
– Lack of documentation in certain areas
• Problem getting value-of to work with latest spec
• Solutions
– Use working draft of XSL specs
• Schedule
– Behind because of parsing/insertion and learning XML
generation, but didn’t take long
• Other Issues
– Time consuming to put each attribute into the XSL doc
Lindsey Gray
18
On-Line Help
• Good Points
– only HTML
• Schedule
– Adding information as modules are completed
– Behind because entire schedule is behind
Lindsey Gray
19
Tools/Languages
• Servlets
• Java
– Simple
– One member already had
experience
– Easy & well documented
– Best choice -> web display
• JDBC
– Easy & well documented
– Download correct driver
• Forte
– Easy
– Very slow, but handles
JavaDoc nicely
• XML/XSL
– Too new/ developing in
certain cases, too hard to
find some needed
documentation
• Oracle8i
– Too much documentation
– Hard to learn to be DBA in 2
days
Lindsey Gray
20
Project Resources
• Project Hours Total: 490
• Server and Computer
– Loan from Lockheed Martin
• Software
– Freeware: Forte, JDK1.3, JSWDK1.0.1, and Oracle
XDK
– Oracle8i Enterprise Edition
– Jbuilder
• References
– Books
– Internet
Lindsey Gray
21
Schedule
• Problems
– Original estimates were low
– Schedule created before allocating resources
• Other Issues
– Overconfidence in project
– Filtering information is time intensive
William Busby
22
Schedule
• Solutions
– Adjusted schedule many times
– Purchased 3 books
– Reduce dependencies in schedule
• Manually inserted data into database
• Hard-coded DB connections initially
• Effect => Only slightly behind schedule
William Busby
23
Remaining Schedule
William Busby
24
Summary
• Behind schedule, but will be done by
Capstone (with little sleep)
• Needed to start coding earlier
– This is when we came across most problems,
especially with data format
• For scheduling, needed to remember that
one day != an 8 hour work day
• The modular design and incremental
approach worked well
William Busby
25
ANY QUESTIONS
26