13.06.2014 Views

musician web-service using ruby-on-rails, soap ... - Rivier University

musician web-service using ruby-on-rails, soap ... - Rivier University

musician web-service using ruby-on-rails, soap ... - Rivier University

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MUSICIAN WEB SERVICE<br />

2 Functi<strong>on</strong>al Specificati<strong>on</strong><br />

Level 1 Functi<strong>on</strong>ality – This Project<br />

I. Calendar: Additi<strong>on</strong>s and changes to the calendar updates all necessary modules for the<br />

<str<strong>on</strong>g>web</str<strong>on</strong>g>site and schedule sending out automated email updates to fans.<br />

II. Mail: Standard messages sent and received between individuals and within groups.<br />

III. Management of multiple <str<strong>on</strong>g>web</str<strong>on</strong>g>sites <strong>on</strong> different physical servers.<br />

Level 2 Functi<strong>on</strong>ality<br />

IV. Multiple Artist Management: Manage multiple artists from a desktop client that c<strong>on</strong>nects to a<br />

remote server.<br />

V. C<strong>on</strong>tacts: The standard run-of-the-mill address book.<br />

VI. Style & Design Module: A basic design module that accepts any <str<strong>on</strong>g>web</str<strong>on</strong>g>site design.<br />

VII. Agent and Sales Staff: Additi<strong>on</strong>al functi<strong>on</strong>ality requests made by management.<br />

VIII. Forum: a forum that allows text and audio.<br />

IX. Audio streaming.<br />

X. Printing and sending flyers<br />

Future Versi<strong>on</strong>s<br />

Stateless Email applicati<strong>on</strong> data transfer.<br />

Mobile ph<strong>on</strong>e / PDA.<br />

Messages sent from ph<strong>on</strong>e are posted <strong>on</strong> the <str<strong>on</strong>g>web</str<strong>on</strong>g>site (text and voice).<br />

2.1 Case Study<br />

In <strong>on</strong>e of my previous bands, I was in charge of handling all communicati<strong>on</strong>s via the <str<strong>on</strong>g>web</str<strong>on</strong>g>, ph<strong>on</strong>e, email,<br />

and standard mail. It was actually quite time-c<strong>on</strong>suming. I had a program to make updates to the<br />

<str<strong>on</strong>g>web</str<strong>on</strong>g>site, a program to transfer the data to the <str<strong>on</strong>g>web</str<strong>on</strong>g>site, and a separate email client set up to send out<br />

mailings to the fans. I had to manually add people to the email list. Generally, people would sign up at<br />

gigs, or just visit our <str<strong>on</strong>g>web</str<strong>on</strong>g>site and send an email to us. I used another program to design and type up<br />

flyers. I needed clip art to make the site and flyers less bland. It was quite tedious.<br />

2.2 Required Functi<strong>on</strong>ality<br />

In additi<strong>on</strong> to what is specified in the functi<strong>on</strong>al spec, there are major security requirements. The<br />

majority of the time spent in coding this applicati<strong>on</strong> was creating a secure, sessi<strong>on</strong> based login manager.<br />

I need to add some state to compensate for the stateless HTTP protocol. A sessi<strong>on</strong> manager was<br />

designed that handles the task without putting undue load <strong>on</strong> the database and server. Once a pers<strong>on</strong> is<br />

authenticated, then all calls to the <str<strong>on</strong>g>service</str<strong>on</strong>g> pass through the sessi<strong>on</strong> manager. The sessi<strong>on</strong> ID is a unique<br />

random key that is stored in the database and deleted up<strong>on</strong> closure of the sessi<strong>on</strong>. No cookies are used.<br />

The sessi<strong>on</strong> is validated <strong>on</strong> every call to the <str<strong>on</strong>g>service</str<strong>on</strong>g> to c<strong>on</strong>firm that the user has access to that data. Only<br />

Copyright © 2006 by John A. Di<strong>on</strong>. Published by <strong>Rivier</strong> College, with permissi<strong>on</strong>. 3<br />

ISSN 1559-9388 (<strong>on</strong>line versi<strong>on</strong>), ISSN 1559-9396 (CD-ROM versi<strong>on</strong>).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!