Presentation is loading. Please wait.

Presentation is loading. Please wait.

Digital Library Syllabus Uploader Will Cameron CSC 8530 October 19, 2006 Project Presentation 2.

Similar presentations


Presentation on theme: "Digital Library Syllabus Uploader Will Cameron CSC 8530 October 19, 2006 Project Presentation 2."— Presentation transcript:

1 Digital Library Syllabus Uploader Will Cameron CSC 8530 October 19, 2006 Project Presentation 2

2 Overview Purpose Purpose Technology Technology Deployment Diagram Deployment Diagram Syllabus submission fields Syllabus submission fields Client Side DB Client Side DB SOAP SOAP Axis2 and Client-Server Interfaces Axis2 and Client-Server Interfaces Activity Diagrams Activity Diagrams Plan For Proceeding Plan For Proceeding Conclusion Conclusion

3 Purpose of the Syllabus Uploader Provide a service for the remote uploading of course materials by approved course instructors to CITIDEL 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 CITIDEL is a digital library for Computer Science educational and research materials Specifically course Syllabi Specifically course Syllabi

4 Algorithm Messaging form data from one web server to another Messaging form data from one web server to another To facilitate the automatic creation of a digital library item on the DSpace side 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 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… 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

5 Client Side Technology mySQL mySQL –For lightweight ‘client’ side web application –To allow user accounts for syllabi storage, editing, and ownership over time Apache Tomcat Apache Tomcat –Web server in which the below will reside: Java Servlets/JSPs Java Servlets/JSPs –View and Business logic of client web application Axis2 SOAP messaging client code Axis2 SOAP messaging client code

6 Server Side Technology Tomcat Tomcat –Deployed Axis2 Web Service –Java code to create directory and file for upload in Unix Call the DSpace Uploader Call the DSpace Uploader –DSpace Digital Library PostgreSQL Database backend PostgreSQL Database backend JSP/Servlet business logic and view JSP/Servlet business logic and view DSpace item resource automatic Uploader tool DSpace item resource automatic Uploader tool

7 Deployment Diagram Syllabi Submission Web Server Syllabi Submission Web Server (Apache/Tomcat) (Apache/Tomcat) Submit Submit Save/Load a syllabi Save/Load a syllabi Syllabi Submission Form Web Service Client DSpace Digital Library (Apache/Tomcat) Metadata Translation Item Document Creation Item Creation Web Service Server PostgreSQL Database mySQL Database for accounts, saved syllabi

8 Ontology for Syllabus Web Fields Derived from Ontology by Xiaoyan Yu of Virgina Tech DL Research Center Derived from Ontology by Xiaoyan Yu of Virgina Tech DL Research Center Professor Name Professor Name Days of Week Days of Week Time Time Class Location Class Location Course Code (Number, Section, CRN) Course Code (Number, Section, CRN) Phone Number Phone Number Email Email Office Hours Office Hours Course Web Site Course Web Site Grading Grading Exam Dates Exam Dates Course Format Course Format Semester Semester Course Description Course Description Assignments Assignments Calendar Calendar Grading Option Grading Option Professor Role Professor Role Book Title Book Title Publisher Publisher

9 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,...)

10 SOAP “a protocol for exchanging XML-based messages over a computer network, normally using HTTP” “a protocol for exchanging XML-based messages over a computer network, normally using HTTP” HTTP is the underlying network standard for the Internet 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” Distributed paradigm defining services as available “nodes on a network” “SOAs comprise loosely coupled (joined), highly interoperable application services“ “SOAs comprise loosely coupled (joined), highly interoperable application services“ Interoperate in a defined format independent of the underlying programming language (Wikipedia) Interoperate in a defined format independent of the underlying programming language (Wikipedia) Apache Axis2 Apache Axis2

11 SOAP A SOAP message consists of 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"> 827635 827635 </getProductDetails></soap:Body></soap:Envelope>

12 Why Axis2? 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 Compared to Java RMI for example Compared to Java RMI for example A Tomcat web application A Tomcat web application –Cutting Edge technology (Version 1.0 5/4/06) –Part of the Apache Project –Recommended by web services developers –WS-Security Support

13 Deployed Axis2 Web Application Deployed Axis2 Web Application http://whatsup.csc.villanova.edu:8080/axis2/listServices.jsp http://whatsup.csc.villanova.edu:8080/axis2/listServices.jsp

14 System Architecture Apache Tomcat Axis2 Web Server DSpace Web Server PostgreSQL Database DSpace Item Uploader My Service Apache Tomcat WebForm.jsp WebFormServlet.java Axis2Client.java mySQL Database ItemCreator.java “cat > syllibus.doc”

15 Axis2 Client A typical Java class importing the Axis2 API A typical Java class importing the Axis2 API Will instantiate an Axis2 API OMElement Will instantiate an Axis2 API OMElement Object will be populated with an XML document representation of the syllabus data Object will be populated with an XML document representation of the syllabus data Each Syllabus entry will be an XML node Each Syllabus entry will be an XML node Object will be marshalled for HTTP Object will be marshalled for HTTP

16 Axis2 Web Service I will implement a basic Asynchronous (Blocking) Duel Transport System 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) “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)http://ws.apache.org/axis2/1_0/userguide3.htm

17 Defining the Axis2 Server Writing a new Web Service with Axis2 involves four steps: Writing a new Web Service with Axis2 involves four steps: Write the Implementation Class Write the Implementation Class Write a services.xml file to explain the Web Service Write a services.xml file to explain the Web Service create a *.aar archive (Axis Archive) for the Web Service create a *.aar archive (Axis Archive) for the Web Service Deploy the Web Service Deploy the Web Service

18 Activity Diagram 1 Begin Syllabus Form Save Form Client Web Site Create Account Log into Account Load Form Submit Form Add EntryLog Out Edit Entries Valid Invalid Marshall into XML Object Axis2 Client Submit to Axis2 Server Course Instructor Create Axis2 OMElement Object Exception, cannot connect Stack trace printed to terminal, log

19 Activity Diagram 2 Object calls MyService Axis2 Server Item Uploader ItemCreator calls DSpace Item Uploader DSpace Server Message Handlers UnMarshall XML Object MyService calls ItemCreator Item Uploader Queries PostgreSQL Exception (Service not found, etc) RawXMLINOutMessageReceiver

20 Plan for Proceeding Develop Axis2 server Develop Axis2 server –Implement the server side web service Develop Basic Client Web site Develop Basic Client Web site –JSP Web Form with submission capability Web Form with submission capability –Servlet to call Axis2 Client –Axis2 Java Client Implement Server side DSpace Item creation and storage Implement Server side DSpace Item creation and storage Implement client side database, session capabilities Implement client side database, session capabilities

21 Conclusion Therefore I hope to implement a useful and educational distributed system for remote Digital Library Syllabi submission Therefore I hope to implement a useful and educational distributed system for remote Digital Library Syllabi submission


Download ppt "Digital Library Syllabus Uploader Will Cameron CSC 8530 October 19, 2006 Project Presentation 2."

Similar presentations


Ads by Google