Embed
Email

WenjunWu

Document Sample

Shared by: gegeshandong
Categories
Tags
Stats
views:
0
posted:
11/7/2011
language:
English
pages:
17
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 Gadget Java Portlet



Resuable web Resuable Browser-side Web Resuable Sever-side Portal

module module module

XML, HTML, CSS, JavaScript Web Form, Portlet/JSP Markup,

Portlet code

Application Defined in the JavaScript Defined in the server-side portlet

Logic code of the gadget



Communication AJAX Web Form, Portlet/Servlet

with Server



Container OpenSocial Container ( PHP, Java based Portal

Dependence Java .. )



Deployment OpenSocial Container: Portlet Container:

iGoogle, Myspace, Orkut,.. 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

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) Serialized Command-Line

Objects

perl

" -infile=$value"

seqlab

" -infile=value"









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

JavaScript code segment for running clustalw jobs

String JobID runJob

(String application,

Hashmap params);

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







Request Token Servlet



Authorization Servlet

OpenSocial

Gadgets Container

Access Token Servlet



OAuth Security Filter









JSON-RPC

Service Provider

Message flow in OAuth steps

MakeRequest Consumer Requests

POST/GET (1) Request Token









Provider Grants

Request Token

ApprovalURL









HTTP Request & Callback URL





Callback URL

Consumer

Requests

Access Token

MakeRequst

POST (2)

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 gadget ClustalW gadget

Questions & Answers



• Demo on Tuesday

12:00PM Argonne Booth

1:30PM Indiana Booth



Related docs
Other docs by gegeshandong
Centre of mass - Maths - it_
Views: 0  |  Downloads: 0
Chapters 11 12
Views: 5  |  Downloads: 0
TFC-MS100 - Hespro
Views: 0  |  Downloads: 0
836329-9.4 Pneumonia Consent Form
Views: 0  |  Downloads: 0
19089
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!