Download presentation
Presentation is loading. Please wait.
Published byDayna Ford Modified over 9 years ago
1
Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens
2
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
3
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
4
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
5
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
6
Open Life Science Gateway Framework
7
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
8
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
9
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
10
Building OpenSocial gadgets for OLSGW URL gadgets IFrame Wrap any Html pages in OLSGW Session Cookie HTML gadgets Gadget XML HTML markups JavaScript codes.
11
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
12
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
13
OAuth Implementation for JSON-RPC Gadgets OpenSocial Container Request Token Servlet Authorization Servlet Access Token Servlet OAuth Security Filter JSON-RPC Service Provider
14
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
15
Open Life Science Gateway Bio-gadgets (rendered in iGoogle) Blast gadget run on both iGoogle and orkut
16
Open Life Science Gateway gadgets Job History gadgetClustalW gadget
17
Demo on Tuesday 12:00PM Argonne Booth 1:30PM Indiana Booth Questions & Answers
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.