Project Progress report

Download Report

Transcript Project Progress report

Digital Library Syllabus
Uploader
Will Cameron
CSC 8530
October 19, 2006
Project Presentation 2
Overview
•
•
•
•
•
•
•
•
•
•
Purpose
Technology
Deployment Diagram
Syllabus submission fields
Client Side DB
SOAP
Axis2 and Client-Server Interfaces
Activity Diagrams
Plan For Proceeding
Conclusion
Purpose of the Syllabus Uploader
• Provide a service for the remote uploading
of course materials by approved course
instructors to CITIDEL
• CITIDEL is a digital library for Computer
Science educational and research
materials
• Specifically course Syllabi
Algorithm
• Messaging form data from one web server to another
• To facilitate the automatic creation of a digital library
item on the DSpace side
– A text document/word doc which represents the item
– Metadata entry created about that item in Dublin Core DSpace
Registry
• Allows for searching, browsing for the resource in the digital library
– Requires a mapping of standard syllabus fields to the Dublin
Core Metadata standard as implemented in DSpace
• Syllabus fields: course description, topics, grading, assignments…
– File Share of sorts, however, the ‘file’ is generated on the fly as
based upon the form completed by the user
– Handle concurrency of submissions from multiple users
Client Side Technology
• mySQL
– For lightweight ‘client’ side web application
– To allow user accounts for syllabi storage,
editing, and ownership over time
• Apache Tomcat
– Web server in which the below will reside:
• Java Servlets/JSPs
– View and Business logic of client web
application
• Axis2 SOAP messaging client code
Server Side Technology
• Tomcat
– Deployed Axis2 Web Service
– Java code to create directory and file for
upload in Unix
• Call the DSpace Uploader
– DSpace Digital Library
• PostgreSQL Database backend
• JSP/Servlet business logic and view
• DSpace item resource automatic Uploader tool
Deployment Diagram
DSpace Digital Library
•
•
Syllabi Submission Web Server
•(Apache/Tomcat)
(Apache/Tomcat)
Submit
Syllabi Submission
Form
Web Service
Client
• Save/Load a syllabi
mySQL
Database for accounts, saved syllabi
Metadata Translation
Item Document Creation
Item Creation
Web Service
Server
PostgreSQL
Database
Ontology for Syllabus Web Fields
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Derived from Ontology by Xiaoyan Yu of Virgina Tech DL Research Center
Professor Name
Days of Week
Time
Class Location
Course Code (Number, Section, CRN)
Phone Number
Email
Office Hours
Course Web Site
Grading
Exam Dates
Course Format
Semester
Course Description
Assignments
Calendar
Grading Option
Professor Role
Book Title
Publisher
Client Side Database ER
USERPROFILE(profile_Id, Email, Name)
SYLLABUS(syl_id, profile_id, Name, CourseCode, Days, Phone, Email,
OfficeHours, CourseSite, Grading, ExamDates, Format, Semester,
Assignments, Calendar, Grading Options, Professor Role, Time,...)
SOAP
• “a protocol for exchanging XML-based messages over a
•
computer network, normally using HTTP”
HTTP is the underlying network standard for the Internet
– “SOAP forms the foundation layer of the web services stack,
providing a basic messaging framework that more abstract
layers can build on”
– Embodies the Service Oriented Architecture
• Distributed paradigm defining services as available “nodes on a
•
•
network”
“SOAs comprise loosely coupled (joined), highly interoperable
application services“
Interoperate in a defined format independent of the underlying
programming language (Wikipedia)
• Apache Axis2
SOAP
• A SOAP message consists of
– A Required Envelope element that “identifies the XML document
as a SOAP”
– An optional header, must be directly after the envelope
– A required body containing the request/response information
– An optional fault element
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/“
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<getProductDetails xmlns="http://warehouse.example.com/ws">
<productID>827635</productID>
</getProductDetails>
</soap:Body>
</soap:Envelope>
• Why Axis2?
–
–
–
–
–
SOAP XML web service
Open Source, Java based, Tomcat friendly
Lightweight, small memory footprint
High degree of flexibility
Relatively simple install and accessible Java API
–
–
–
–
Cutting Edge technology (Version 1.0 5/4/06)
Part of the Apache Project
Recommended by web services developers
WS-Security Support
• Compared to Java RMI for example
• A Tomcat web application
Deployed Axis2 Web Application
http://whatsup.csc.villanova.edu:8080/axis2/listServices.jsp
System Architecture
Apache Tomcat
DSpace Web Server
Axis2 Web Server
ItemCreator.java
My Service
DSpace
Item
Uploader
“cat >
syllibus.doc”
Apache Tomcat
Axis2Client.java
WebFormServlet.java
WebForm.jsp
mySQL
Database
PostgreSQL
Database
Axis2 Client
• A typical Java class importing the Axis2
API
• Will instantiate an Axis2 API OMElement
• Object will be populated with an XML
document representation of the syllabus
data
• Each Syllabus entry will be an XML node
• Object will be marshalled for HTTP
Axis2 Web Service
• I will implement a basic Asynchronous (Blocking) Duel Transport
System
• “To address the problem of long running transactions (the transport
connection may time-out before the operation completes). A possible
solution would be to use two separate transport connections for
request and response.” (Axis2 User’s Guide http://ws.apache.org/axis2/1_0/userguide3.html)
Defining the Axis2 Server
• Writing a new Web Service with Axis2
involves four steps:
• Write the Implementation Class
• Write a services.xml file to explain the
Web Service
• create a *.aar archive (Axis Archive) for
the Web Service
• Deploy the Web Service
Activity Diagram 1
Course
Client Web Site
Instructor
Axis2 Client
Create Account
Exception,
Log into Account
cannot connect
Load Form
Begin Syllabus Form
Add Entry
Submit to Axis2 Server
Log Out
Edit Entries
Save Form
Submit Form
Stack trace printed
to terminal, log
Invalid
Valid
Marshall into XML Object
Create Axis2 OMElement Object
Activity Diagram 2
Axis2 Server
DSpace Server
Exception (Service not found, etc)
Message Handlers UnMarshall XML Object
RawXMLINOutMessageReceiver
Object calls MyService
Item Uploader
Queries PostgreSQL
MyService calls ItemCreator
ItemCreator calls DSpace
Item Uploader
Item Uploader
Plan for Proceeding
• Develop Axis2 server
– Implement the server side web service
• Develop Basic Client Web site
– JSP
• Web Form with submission capability
– Servlet to call Axis2 Client
– Axis2 Java Client
• Implement Server side DSpace Item creation
•
and storage
Implement client side database, session
capabilities
Conclusion
• Therefore I hope to implement a useful
and educational distributed system for
remote Digital Library Syllabi submission