Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens.

Slides:



Advertisements
Similar presentations
PRAGMA BioSciences Portal Raj Chhabra Susumu Date Junya Seo Yohei Sawai.
Advertisements

LEAD Portal: a TeraGrid Gateway and Application Service Architecture Marcus Christie and Suresh Marru Indiana University LEAD Project (
Lecture plan Information retrieval (from week 11)
A Prototype Implementation of a Framework for Organising Virtual Exhibitions over the Web Ali Elbekai, Nick Rossiter School of Computing, Engineering and.
1 CGICGI Common Gateway Interface Server-side Programming Lecture.
OpenSocial CS : Survey of Contemporary Technologies.
DT228/3 Web Development WWW and Client server model.
OpenSocial Europe 2010 Welcome!. Who am I? Developer Evangelist, Apps Market, Jive Software (mark dot weitzel at jivesoftware.com) President, OpenSocial.
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 42 Web Services.
IS 360 Course Introduction. Slide 2 What you will Learn (1) The role of Web servers and clients How to create HTML, XHTML, and HTML 5 pages suitable for.
Multiple Tiers in Action
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
IT 210 The Internet & World Wide Web introduction.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
AJAX Chat Analysis and Design Rui Zhao CS SPG UCCS.
OpenSocial ANATOMY AND LIFE CYCLE Paul Lindner, Architect, Hi5 Networks November 27th, 2007.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
Future Grid Future Grid User Portal Marlon Pierce Indiana University.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
J2EE Structure & Definitions Catie Welsh CSE 432
Copyright, 1996 © Dale Carnegie & Associates, Inc. Presented by Hsiuling Hsieh Christine Liu.
23:48:11Service Oriented Cyberinfrastructure Lab, Grid Portals Fugang Wang April 29
JavaScript – Quiz #9 Lecture Code:
Cross Site Integration “mashups” cross site scripting.
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Web Design: Basic to Advanced Techniques Fall 2010 Mondays 7-9pm 200 Sutardja-Dai Hall Introduction to PHP.
NCSA Alliance Portal Expedition Demo Marlon Pierce, Greg Daues, Gopi Kandaswamy, and Liang Fang Supercomputing 2004 Pittsburg, PA.
1 Alternative view on Internet Computing Web 1.0 –Web 1.0 is first generation, Web Information based. Driven by Information provider. Web 2.0 Ajax enabled.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
 Previous lessons have focused on client-side scripts  Programs embedded in the page’s HTML code  Can also execute scripts on the server  Server-side.
Some comments on Portals and Grid Computing Environments PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce Computer Science, Informatics,
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Understanding Web Applications Lesson 4. Objective Domain Matrix Skills/ConceptsMTA Exam Objectives Understanding Web Page Development Understand Web.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Introduction and Principles Web Server Scripting.
WEB SERVER SOFTWARE FEATURE SETS
Overview of Grid Webservices in Distributed Scientific Applications Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
AJAX Use Cases for WSRP Subbu Allamaraju BEA Systems Inc WSRP F2F Meeting, May 2006.
Clarens Toolkit Building Blocks for a Simple TeraGrid Gateway Tutorial Conrad Steenberg Julian Bunn, Matthew Graham, Joseph Jacob, Craig Miller, Roy Williams.
COSC 2328 – Web Programming.  PHP is a server scripting language  It’s widely-used and free  It’s an alternative to Microsoft’s ASP and Ruby  PHP.
PHP and AJAX. Servers and Clients For many years we tried to move as much as possible to the server. Weak clients, poor bandwidth, browser compatibility..
Overview Web Technologies Computing Science Thompson Rivers University.
© 2014 IBM Corporation iWidget Development IBM Connections 5.0 Workshop Author: Paul Godby IBM Ecosystem Development Duration: 45 minutes.
Lightweight OGCE Gadget Portal for Science Gateways Zhenhua Guo, Marlon Pierce Community Grids Laboratory, Pervasive Technology Institute, Indiana University,
Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.
CX Introduction to Web Programming
Web Technologies Computing Science Thompson Rivers University
WEB SERVICES.
AJAX and REST.
Unit – 5 JAVA Web Services
4166 Review.
PHP / MySQL Introduction
IS 360 Course Introduction
Web Technologies Computing Science Thompson Rivers University
Presentation transcript:

Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens

Web 2.0 – Gadget and Social networking Gadget Mini web application AJAX Social Networking Facebook MySpace Build virtual communities in a bottom-up manner Leverage science gateway portals Rich user interface Collaboration: social networking

OpenSocial A standardized framework for building social applications Provides Specification for both gadget and social-networking Gadget JavaScript API: gadgets.* OpenSocial JavaScript API: opensocial.* Enabling web developers to write gadgets with social capability that can run in any OpenSocial compliant container iGoogle, Orkut,MySpace, Hi5… Apache Shindig Open Source OpenSocial container

OpenSocial Gadget vs Portlet OpenSocial GadgetJava Portlet Resuable web module Resuable Browser-side Web module XML, HTML, CSS, JavaScript Resuable Sever-side Portal module Web Form, Portlet/JSP Markup, Portlet code Application Logic Defined in the JavaScript code of the gadget Defined in the server-side portlet Communication with Server AJAXWeb Form, Portlet/Servlet Container Dependence OpenSocial Container ( PHP, Java.. ) Java based Portal DeploymentOpenSocial Container: iGoogle, Myspace, Orkut,.. Portlet Container: Gridsphere, Websphere

Open Life Science Gatway Services A TeraGrid Science Gateway Project Integrates a group of bio- informatics applications and data collections into a portal Alignment - Blast and ClustalW Protein domain – InterProScan Protein Structure Prediction Job History browsing RPC API Web-Services JSON-RPC OLSGW Portlets

Open Life Science Gateway Framework

Generic RPC Services both a generic SOAP-RPC service and JSON-service, unmarshall RPC requests from clients, and create the job objects along with job execution scripts Application Service responsible for parsing an application XML description, generating service stubs and formatting application specific web-pages and portlet codes. Job Factory builds a job execution script and constructs a job object in the persistence job storage

Application Service ( for clustalw ) clustalw perl "clustalw" infile perl $actions ne "-profile" and $actions ne "- sequences" Sequences File (or Alignment File for Bootstrap and Tree actions) (-infile) perl " -infile=$value" seqlab " -infile=value" Serialized Command-Line Objects

Generic RPC Services ( for clustalw ) function runClustalW(){ var params = new Object(); params.javaClass = 'java.util.Hashtable'; params.map = {}; params.map['actions'] = '-align'; params.map['quicktree'] = 'fast'; params.map['outfile'] = 'OUTPUT'; var seqinput = document.getElementById("seqinput"); params.map['infile'] = seqinput.value; // Hashtable params result = jsonrpc.JobService.runJob(callback, "clustalw", params); } Generic RPC Service String JobID runJob (String application, Hashmap<String, String> params); JavaScript code segment for running clustalw jobs

Building OpenSocial gadgets for OLSGW URL gadgets IFrame Wrap any Html pages in OLSGW Session Cookie HTML gadgets Gadget XML HTML markups JavaScript codes.

HTML gadgets Advantage: utilize the rich features of OpenSocial JavaScript API JSON-RPC service to run bio-applications gadgets.io.makeRequest Allows the gadget JavaScript to communicate with remote services through a proxy in the gadget’s OpenSocial container var params={}; params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.OAUTH; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; var rpcdata = {rpc:req.data} params[gadgets.io.RequestParameters.POST_DATA]= gadgets.io.encodeValues(rpcdata); gadgets.io.makeRequest(this.serverURL, response, params); JavaScript code for sending a makeRequest to invoke JSON-RCP Service

Gadgets Authorization OAuth An open authorization delegation mechanism Three Steps The consumer obtains an unauthorized request token. The user authorizes the request token. The consumer exchanges the request token for an access token. OAuth Entities in OLSGW OAuth Consumer: makeRequest proxy in an OpenSocial container OAuth Provider: the JSON-RPC service provider OAUTH servlets and filter

OAuth Implementation for JSON-RPC Gadgets OpenSocial Container Request Token Servlet Authorization Servlet Access Token Servlet OAuth Security Filter JSON-RPC Service Provider

Message flow in OAuth steps MakeRequest POST/GET (1) Consumer Requests Request Token Provider Grants Request Token ApprovalURL HTTP Request & Callback URL Callback URL MakeRequst POST (2) Consumer Requests Access Token

Open Life Science Gateway Bio-gadgets (rendered in iGoogle) Blast gadget run on both iGoogle and orkut

Open Life Science Gateway gadgets Job History gadgetClustalW gadget

Demo on Tuesday 12:00PM Argonne Booth 1:30PM Indiana Booth Questions & Answers