Word - ODU Computer Science

advertisement
BLUE TEAM
STING
Specifications for the STING prototype
Jack Muratore- CS411 FALL 2014
11/16/2014
LAB 2 STING Prototype Product Specifications [Type text]
TABLE OF CONTENTS
1. Introduction
1.1. Purpose
1.2. Scope
1.3. Definitions, Acronyms and Abbreviations
1.4. References
1.5. Overview
2. General Description
2.1. Prototype Architecture Description
2.2. Prototype Functional Description
2.3. Prototype External Interface
2
LAB 2 STING Prototype Product Specifications [Type text]
3
1. Introduction
STING is being developed to bring a more modern user experience to
SCORPION. SCORPION is a protein secondary structure prediction service
that is used internationally to assist in medical research. Its major impacts are in
cancer prevention and rehabilitation. While SCORPION is above its
competition in functionality it lags behind on the user experience of other
prediction services. STINGS purpose is to remedy its shortcomings and put it
ahead of its competition.
1.1. Purpose
STING is a connection to the SCORPION binary that runs on a CentOS
server. It allows both standard HTTP access through a web browser and
also enables a RESTful connection to a plethora of possible 3 rd party
applications.
1.2. Scope
A RESTful connection enables a direct over the internet API to
SCORPION. This allows SCORPION to be integrated easily with any other
software. It will enable a degree of automation that is not present in STING.
A user can set up their research to pull data from STING without the need
to open up a browser.
LAB 2 STING Prototype Product Specifications [Type text]
4
1.3. Definitions, Acronyms and Abbreviation
API: Is an approved protocol on how to interact between a given
programming library.
CentOS: Is a version of Redhat Linux that is supported by the open source
community. It allows the security of Red Hat Linux without the cost.
HTTP: A protocol used with a TCP connection common to web pages and
RESTful API.
HTTP GET: A HTTP request that can be used by a web browser or a 3rd
party program using a RESTful connection. A GET request involves
receiving information in a read only fashion. No server processing is done.
HTTP POST: A HTTP request that can be used by a web browser or a 3rd
party program using a RESTful connection. A POST request asks the server
to run a process that will perform a change of data action. This could be
producing, changing and/or removing new information.
HTTP/Web Server: A computer setup to handle client requests and
processes them using the HTTP protocol.
Linux: An operator system that used for server responsibilities. It runs on a
plethora of hardware and is specified by the POSIX documentation.
PHP: Is the language used on the backend of the HTTP/Web server.
POSIX: Is a community that specifies requirements on how things in the
LAB 2 STING Prototype Product Specifications [Type text]
5
Unix/Linux world should function.
Protocol: A contract or specification on how two computers will
communicate.
SCORPION: Is an executable binary that predicts secondary structure of
amino acids.
STING: Is the prototype being created that enables access to SCORPION.
It accompanies a HTML site and a RESTful API.
SQL: Is a relational database language that has a major market share in the
database community.
SQLITE3: Is a SQL implentation done in C that is common for light
database use.
Redhat Linux: Is a commercial version of Linux that has professional
support.
RESTful API: A protocol that uses HTTP without the need of a web
browser. This allows other types of clients besides Web Browsers in
connecting to a HTTP/Web Server.
Web Browser: The common client used to communicate with a HTTP/Web
server.
1.4. References
W3Schools Online Web Tutorials
LAB 2 STING Prototype Product Specifications [Type text]
Retrieved from http://www.w3schools.com/
RESTful Tutorial
Retrieved from http://www.restapitutorial.com/
Redhat Linux
Retrieved from http://www.redhat.com/en
CENTos
Retrieved from http://www.centos.org/
1.5. Overview
This document details the specifications for the STING prototype. Key
solutions are addressed in detail in the remaining of this paper.
2. General Description
STING makes use of technology that is already installed on the CentOS server
that currently hosts SCORPION. What is needed to demonstrate Prototype is
present on the majority of Linux distributions.
2.1. Prototype Architecture Description
STING will include two parts. A modern feature filled website and a
RESTful API. Shown below is the site map of the current design.
6
LAB 2 STING Prototype Product Specifications [Type text]
The RESTful interface will be described in more detail in section 2.3.
STING uses a SQLite3 database to store information. While the database is
a very integral part of STING it is completely hidden from the user. Please
see section 3.1 for more detailed description on the database.
7
LAB 2 STING Prototype Product Specifications [Type text]
2.2. Prototype Functional Description
Each page will be described in the following. Pages are listed based on the
site map shown in 2.1.
2.2.1.
Home Page
The home page is the submission page and landing page for STING.
The submission page uses JavaScript to perform sequence validation.
2.2.2. Thankyou Page
Following an acceptable sequence submission the user will be shown
the thank you page. This page will instruct the user to watch their email
for a link to the result. It will also give an estimated wait time for the
email to be sent.
2.2.3. Result Page
After receiving an email from the Web Server the link provided in its
contents will direct them to the Result Page. The result page will show
the submitted amino sequence along with the resulting secondary
prediction obtained from SCORPION.
2.2.4. About Page
Is a page open to any user that displays a description of the prediction
service offered by SCORPION.
8
LAB 2 STING Prototype Product Specifications [Type text]
9
2.2.5. Contact
Is a page open to any user that display the means to contact
administrators of STING and SCORPION.
2.2.6. History Page
If the user choices to login the history page will be a link open to them
from the home page. This page will display a list of all submissions sent
by the user to the logged in email.
2.2.7. Personal Information
IF the user is logged in this page will be accessible from the home page.
This page allows the user to optionally enter information about
themselves.
2.2.8. Users
If the user is logged in and is an admin based on the database they will
have access to the users page from the home page. This will list all the
current users, the number of submits, user information and the ability to
label another user as an admin.
2.2.9. Analytics
A logged in admin user will be able to access this page from the home
page. This page will display the google analytics. This will give
LAB 2 STING Prototype Product Specifications [Type text]
10
information based on how people found STING and overall usage in a
macro sense.
2.3. Prototype External Interface
There are two external interfaces that are avaliable in STING. The web
browser and the RESTful API. The web browser can be any main stream
HTML client. Google, IE and Firefox are directly supported. The STING
RESTful API offers a very simple method to access SCORPION.
2.3.1.1. POST
A HTTP POST request can be sent to STING to send an amino acid
sequence to be processed. STING will send a token to be used in
the accompanying GET.
2.3.1.2. GET
A HTTP GET request involes sending the token recieved from the
previous POST. Two possible responses will be returned. First
being that SCORPION is still processing the result or the
processing has finished and the secondary prediction sequence will
be sent.
LAB 2 STING Prototype Product Specifications [Type text]
11
Download