GUS 3.0: Web Sites and Tools June 20, 2002 Jonathan Crabtree

Slides:



Advertisements
Similar presentations
Java Script Session1 INTRODUCTION.
Advertisements

Apache Struts Technology
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Languages for Dynamic Web Documents
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Technical Tips and Tricks for User Support Mike Gardner
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
B.Sc. Multimedia ComputingMedia Technologies Database Technologies.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
LYU9901-Travel Net LYU9901-Travel Net Supervisor: Prof. Michael R. Lyu Students: Ho Chi Ho Malcolm Lau Chi Ho Arthur (Presentation on )
Multiple Tiers in Action
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Java web development Servlet & Java server pages.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
Java Enterprise Edition Java Web Development Structure of a web project Introduction to Web Applications The first project Introduction to Java Web Development.
Eclipse is an open source IDE (Integrated Development Environment) for developing applications in Java, C/C++, HTML, Cobol, Perl, etc. The official Eclipse.
UNIT-V The MVC architecture and Struts Framework.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
GUS Overview June 18, GUS-3.0 Supports application and data integration Uses an extensible architecture. Is object-oriented even though it uses.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
IST 210: PHP BASICS IST 210: Organization of Data IST210 1.
Web Server Administration Chapter 7 Installing and Testing a Programming Environment.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Fall CIS 764 Database Systems Design L8. Web ….
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
CITA 310 Section 7 Installing and Testing a Programming Environment (Textbook Chapter 7)
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
Chapter 6 Chapter 6 Server Side Programming (JSP) Part 1 1 (IS 203) WebProgramming (IS 203) Web Programming.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Apache Struts Technology A MVC Framework for Java Web Applications.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
IST 210: PHP Basics IST 210: Organization of Data IST2101.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
GUS We have created the Genomic Unified Schema (GUS), a relational database that warehouses and integrates biological sequence, sequence annotation, and.
Running a Forms Developer Application
Haritha Dasari Josue Balandrano Coronel -
EPConDB: Endocrine Pancreas Consortium Database
Presentation transcript:

GUS 3.0: Web Sites and Tools June 20, 2002 Jonathan Crabtree

Outline " Current web interfaces – examples: allgenes.org, PlasmoDB.org – Java Servlet, CGI-based – reusable Java and Perl code, install scripts " The future? – PHP and JSP – "GUSWWW" schema redesign

GUS - Multiple Views & Projects AllGenes.orgPlasmoDB.org EPConDB CoreSResTESSRADDoTS Oracle RDBMS Perl Object Layer for Data Loading Java Servlets + Perl CGI Other sites Other projects

allgenes.org query: "Is my cDNA similar to any mouse genes that are predicted to encode transcription factors and have been localized to mouse chromosome 5?"

Select the allgenes.org boolean query page Click on the "AND" button

Choose the RH map and GO function queries Select mouse chromosome 5 and "transcription factor"

There are 22 mouse RNAs (assemblies) that meet these criteria: This query result set now appears on the query "history" page:

Now use the BLAST page to identify RNAs similar to my cDNA The results of the BLAST search appear in the query history

Intersect ("AND") the BLAST search with the previous query: And we have our answer (the third row on the query history page):

Predicted GO function(s) (some manually reviewed) predicted protein CAP4 assemblyEST expression profile UCSC BLAT Other transcripts from the same gene External links Mapping information Protein/motif hits Gene trap insertions, etc.

PlasmoDB: Combining Expression and Sequence Data "List all genes whose proteins are predicted to contain a signal peptide and for which there is evidence that they are expressed in Plasmodium falciparum's late schizont stage."

Web Interface Components GUS/www/allgenes/htdocs/ GUS/www/allgenes/htdocs/index.html.in... GUS/www/allgenes/cgi-bin/ GUS/www/allgenes/cgi-bin/rnaProtSimPng.pl.in... GUS/java/cbil/gus/servlet/ GUS/java/cbil/gus/servlet/SiteServlet.java... GUS/www/install/ GUS/www/install/allgenes-config.in GUS/www/install/installServlet.pl GUS/perl/servlet/allgenes/ GUS/perl/servlet/allgenes/rnaProtSim.pl.in...

rnaProtSimPng.pl.in # # rnaProtSimPng.pl # # $Revision: 1.3 $ $Date: 2001/03/22 14:44:57 $ $Author: crabtree $ # use strict; require 'cgi_lib.perl'; require # Input using cgi_lib.perl # my %rq = &get_request(); my $naSeqId = $rq{'id'} || ; $naSeqId =~ s/[^\d]//g; my $maxHits = $rq{'max_hits'}; $maxHits =~ s/[^\d]//g; # Generate image using rnaSimilarityPng.pm # $| = 1; my $mapName = "$naSeqId-prot"; my $imgData = &getImage($mapName, $naSeqId, 'ExternalAASequence'); print "Content-type: image/png\n\n$imgData";

cbil.gus.servlet.SiteServlet " extends javax.servlet.http.HttpServlet – and is the only actual servlet in our Java code " reads a configuration file and instantiates the set of JavaBeans defined therein: – instances of PageGeneratorI - content generators – SqlQuery - parameterized SQL queries – "Param" and "Formatter" classes " implements logging, dispatches requests

allgenes-config.in # Oracle-specific routines # gusOraSql.class=cbil.gus.servlet.db.oracle.SQL # Set of logins to GUS or GUSdev # gusLogin.class=cbil.gus.servlet.db.ConnectionPool gusLogin.NumConnections=6 gusLogin.MaxQueryTime=120 gusLogin.CheckInterval=30 gusLogin.JDBCDrivers=oracle.jdbc.driver.OracleDriver gusLogin.Sql=gusOraSql gusLogin.PrintStatusMessages=true.

# Retrieve an RNA's sequence from the DB # rnaSeqQ.class=SqlQuery rnaSeqQ.DisplayName=RNA sequence rnaSeqQ.Name=rnaSeqQ rnaSeqQ.Abbrev=rnaSeq rnaSeqQ.SQL=select nas.sequence \ from dots.NASequenceImp nas, dots.ProjectLink pl \ where nas.na_sequence_id = $$0$$ \ and nas.na_sequence_id = pl.id \ and pl.project_id = 813 \ and pl.table_id in (56, 89) rnaSeqQ.HtmlBrief=RNA sequence for RNA DT. rnaSeqQ.Params=rnaID rnaSeqQ.ResultFormatter=rnaSeqF

# RH map location (DOTS only) # rhLocnID.DisplayName=Chromosomal location based on RH mapping rhLocnID.Name=rhmap_locn_id rhLocnID.Abbrev=rhLocn rhLocnID.SQL=select distinct epcr.na_sequence_id \ from dots.EPCR epcr, dots.RHMapMarker rmm, dots.RHMarker rm, dots.ProjectLink pl \ where rmm.chromosome = '$$0$$' and rmm.centirays >= $$1$$ and rmm.centirays <= $$2$$ \ and rm.rh_marker_id = rmm.rh_marker_id \ and rm.taxon_id $$3$$ \ and epcr.map_table_id = 366 \ and rmm.rh_map_marker_id = epcr.map_id \ and epcr.na_sequence_id = pl.id \ and pl.project_id = \ and pl.table_id = 56 rhLocnID.HtmlBrief= RNAs radiation hybrid mapped to \ chromosome between and cR rhLocnID.HtmlLong=This query returns DoTS predicted transcripts that can be \ linked to a specific chromosomal location by the radiation hybrid map data. A DoTS \ predicted transcript consists of an... rhLocnID.Params=humanOrMouseChromP,centirayStartP,centirayEndP,taxonIdP rhLocnID.ResultFormatter=dotsIdListF1

humanOrMouseChromP.class=EnumParam humanOrMouseChromP.Prompt=Select a chromosome: humanOrMouseChromP.Description=Human or mouse chromosome humanOrMouseChromP.Values=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,22,X,Y humanOrMouseChromP.Help=Please select a human or mouse chromosome from \ the list provided; note that chromosomes 'Y', '20', '21', and '22' are \ only valid for humans. centirayStartP.class=DoubleParam centirayStartP.Prompt=Start position in centirays: centirayStartP.Description=Start position in centirays centirayStartP.Min=0.0 centirayStartP.Max=10290 centirayStartP.Initial=0.0 centirayStartP.Help=Enter a "start" position in centirays. The centiray \ is the unit of distance used in radiation hybrid mapping \ assays and the form should indicate the range of values \ that are valid for this particular parameter.

"GUSwww" Cache Tables SQL> describe queries; Name Null? Type QUERY_ID NOT NULL NUMBER(12) SERVLET_NAME NOT NULL VARCHAR2(30) QUERY_NAME NOT NULL VARCHAR2(100) PARAM0 VARCHAR2(100) PARAM1 VARCHAR2(100). PARAM74 VARCHAR2(100) PARAM75 VARCHAR2(100) RESULT_TABLE NOT NULL VARCHAR2(30) START_TIME NOT NULL DATE END_TIME DATE SQL> describe cache435; Name Null? Type SPOT_FAMILY_RESULT_ID NOT NULL NUMBER(10) I NUMBER SQL> describe cache30687; Name Null? Type NA_SEQUENCE_ID NUMBER(12) I NUMBER(12)

installServlet.pl install]$./installServlet.pl --port=9000 \ --cgiDir=/world/ \ --htdocsDir=/world/ \ --cgiURL= \ --htdocsURL= \ --installDir=/world/ \ --servletName=allgenes-zeus \ --servletFilePrefix=allgenes \ --servletConfig=allgenes-zeus \ --production \ --servletURL= -install htdocs and cgi-bin files perform substitutions defined by 'allgenes-zeus' (e.g. ORA_LOGIN, ORA_PASSWORD, PROJECT_ID) -compile Java code, create.jar file and install -install servlet configuration file

Features of Current [Servlet] Implementation " Automatic generation of HTML FORMs – Automated input checking – Integrated help features – INPUT elements populated from the database " Query history facility " Boolean queries (AND, OR, SUBTRACT) " Declarative configuration file " Base system is relatively independent of GUS

Limitations of Current Implementation " Relatively steep learning curve " Monolithic solution – No support for modifying configuration at runtime – All objects instantiated when config. file read " Limited ability to customize presentation layer (i.e., HTML) without programming in Java " Technical problems with Servlets/Tomcat – Must restart all servlets as a group – Not currently using Serializable sessions

Dynamic Web Content " HTML fragments embedded in a program: – CGI programs (e.g. Perl - interpreted) – Java Servlets (compiled) " Program fragments embedded in HTML: – PHP (interpreted) – JSP (compiled; once, as needed) " Another axis: persistent vs. not (CGI/FastCGI)

Program Fragments in HTML " Advantages: – faster development cycle; can edit in place – easier to see/validate structure of HTML pages – HTML has no functions, Java and PHP do " Disadvantages: – must take care to manage complexity of application " Recommendations: – move towards adopting this approach – move all persistent state into the database

PHP: PHP Hypertext Processor " " Scripting language; can be embedded in HTML " (Netcraft survey):

JSP - Java Server Pages " Based on and can interact with Java Servlets " Essentially Java embedded in HTML " XML-based tags, scriptlets, and JavaBean calls " Standard tag libraries available " Pages typically compiled on demand " Multiple implementations? (vs. single for PHP)

Next steps " Agree on desired user interface functionality – saving queries for PlasmoDB – persistent preferences for genome browser " Design parts of the schema to support it " Migrate old code/write new code " Easier to migrate existing code with JSP