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