Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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