Toward an opensocial life science gateway
Download
1 / 17

Toward an OpenSocial Life Science Gateway - PowerPoint PPT Presentation


  • 373 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Toward an OpenSocial Life Science Gateway' - KeelyKia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Toward an opensocial life science gateway l.jpg

Toward an OpenSocial Life Science Gateway

Wenjun Wu, Michael E. Papka, Rick Stevens


Web 2 0 gadget and social networking l.jpg
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 l.jpg
OpenSocial

  • A standardized framework for building social applications

  • Provides Specification for both gadget and social-networking

    • Gadget JavaScript API: gadgets.*

    • OpenSocial JavaScript API: opensocial.*

      <People, Relationship, Activity, Persistence>

  • 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



Open life science gatway services l.jpg
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 framework7 l.jpg
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 l.jpg
Application Service ( for clustalw )

<parameter iscommand="1" ishidden="1" type="String">

<name>clustalw</name>

<attributes>

<format>

<language>perl</language>

<code>"clustalw"</code>

</format>

</attributes>

</parameter>

<parameter ismandatory="1" issimple="1" type="Sequence">

<name>infile</name>

<attributes>

<precond>

<language>perl</language>

<code>$actions ne "-profile" and $actions ne "-sequences"</code>

</precond>

<prompt>Sequences File (or Alignment File for Bootstrap and Tree actions) (-infile)</prompt>

<format>

<language>perl</language>

<code> " -infile=$value"</code>

<language>seqlab</language>

<code> " -infile=value"</code>

</format>

</seqfmt>

</attributes>

</parameter>

Serialized Command-Line

Objects


Generic rpc services for clustalw l.jpg
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 l.jpg
Building OpenSocial gadgets for OLSGW

  • URL gadgets

    • IFrame

    • Wrap any Html pages in OLSGW

    • Session Cookie

  • HTML gadgets

    • Gadget XML

    • HTML markups

    • JavaScript codes.

<?xml version="1.0" encoding="UTF-8"?>

<Module>

<ModulePrefs title="Run ClustalW" scrolling="true" width="1000" height="600">

<Require feature="views"/>

<Require feature="dynamic-height"/>

</ModulePrefs>

<Content type="url" view="canvas" href="http://cbc.lac.uic.edu:8080/jobsubportlets/gadget/clustalw.html"></Content>

</Module>


Html gadgets l.jpg
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 l.jpg
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 l.jpg

Gadgets

OpenSocial

Container

OAuth Implementation for JSON-RPC

Request Token Servlet

Authorization Servlet

Access Token Servlet

OAuth Security Filter

JSON-RPC

Service Provider


Message flow in oauth steps l.jpg

Consumer Requests

Request Token

MakeRequest

POST/GET (1)

Provider Grants

Request Token

ApprovalURL

Callback URL

Consumer

Requests

Access Token

MakeRequst

POST (2)

Access Token

Message flow in OAuth steps

HTTP Request & Callback URL


Slide15 l.jpg

Open Life Science Gateway Bio-gadgets (rendered in iGoogle)

Blast gadget run on both iGoogle and orkut


Open life science gateway gadgets l.jpg
Open Life Science Gateway gadgets

Job History gadget

ClustalW gadget


Questions answers l.jpg
Questions & Answers

  • Demo on Tuesday

    12:00PM Argonne Booth

    1:30PM Indiana Booth


ad