soap:Envelope

musicincurableΔιαχείριση Δεδομένων

31 Ιαν 2013 (πριν από 4 χρόνια και 6 μήνες)

134 εμφανίσεις

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




Syllabi Submission Web Server



(Apache/Tomcat)


Submit








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

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


Compared to Java RMI for example


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


Deployed Axis2 Web Application




http://whatsup.csc.villanova.edu:8080/axis2/listServices.jsp

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”



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.htm
l)



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

Begin Syllabus Form

Save Form

Client Web Site

Create Account

Log into Account

Load Form

Submit Form

Add Entry

Log 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



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

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