SlideShare a Scribd company logo
araport.org
Developing Apps: Exposing Your
Data Through Araport
Matt Vaughn
Director, Life Sciences Computing
Texas Advanced Computing Center
vaughn@tacc.utexas.edu | @mattdotvaughn | www.slideshare.net/mattdotvaughn
araport.org
Overview
•  Why contribute to Araport?
•  How does one create a web service?
•  How does one build a Science App?
•  Commonly asked questions
•  What resources are available?
araport.org
Why become an Araport contributor?
•  Recognition
•  Exposure
•  Feedback
•  Interoperability
•  Professional presentation
•  Reusability
araport.org
Araport: A Road Map
API.ARAPORT.ORG
CLI clients,
Scripts, 3rd party
applications
Core Resources
AGAVE
apps
meta
files
profile
jobssystems
ADAMA
manage
enroll
a b c d e f
Data Resources
API Types
•  Query
•  Map*
•  Generic
•  Pass-through
•  Single-sign on
•  Metering
•  Unified logging
•  API versioning
•  Automatic HTTPS + CORS
REST*
CGI
SOAP
New Web
Services
InterMine
Chado &
Tripal
Computing
Storage
Database
APPS
APIs
araport.org
HOW DOES ONE CREATE A WEB
SERVICE?
araport.org
Araport Data and
Microservice API
•  Implement REST-like web services
•  Allow real-time integration with and transformation of
existing web-based services
•  Promote interoperability
–  Simple, extensible controlled vocabulary for queries
–  Responses can conform to common schemas*
–  GLOBAL SEARCH
•  Solve some annoying problems
–  Provide HTTPS + valid SSL certificate
–  Enable Cross Origin Scripting Support (CORS)
–  Implement authenticated access to services
•  BE EASY TO ADOPT, USE, AND MAINTAIN
araport.org
Case Study: TIGR Gene Expression Database
•  NSF Arabidopsis 2010
project (#0520022)
•  How to make this
resource more broadly
usable and useful?
– Create modernized web
services
– Build an interactive
science app
araport.org
Creating a new data service in 5
easy steps
8
•  Check out a
template
•  Write and
debug service
locally
•  Write docs
•  Describe data
sources
Push to
GitHub*
Register new
service using
ADAMA
Test and
refine the
microservice
Share with
colleagues
or the public
Develop a
Science App
using APIs
Write
Code
Upload Enroll @
Araport
Use it Share Make a
Science
App
araport.org
Example Source Code
https://github.com/
Arabidopsis-Information-Portal/
jcvi-qpcr-services
Shared code among services
ADAMA services have
search and/or list functions
Implement some query logic
Make a request to the server
Transform result to JSON &
send it back
araport.org
Example Metadata (1)
Who has
contributed?
Basic display fields
Configuration fields
and values
araport.org
Example Metadata (2)
Definitions for the
service’s various
parameters
What are the data
sources (can be
nested!)
araport.org
Creating a new data service in 5
easy steps
12
•  Check out a
template
•  Write and
debug service
locally
•  Write docs
•  Describe data
sources
Push to
GitHub*
Register new
service using
ADAMA
Test and
refine the
microservice
Share with
colleagues
or the public
Develop a
Science App
using APIs
Write
Code
Upload Enroll @
Araport
Use it Share Make a
Science
App
araport.org
Using the new service (1)
•  Use the Araport API Explorer
Home->Tools->Web Services-
>Community Data
•  Use the Javascript console
embedded in your browser
•  Manually via command line
tools like cURL or httpie
araport.org
Using the new service (2)
More Information
araport.org
Using the new service (3)
Try this service
araport.org
Using the new service (4)
Every Araport web service is available via Javascript console
Data API namespace
Individual Data API
> Agave.api.adama.getNamespaces()
araport.org
Using the new service (5)
curl -X GET -sk -H "Authorization: Bearer
17f4700fb4ffa9ab32f1bf560e8a2b8" https://
api.araport.org/community/v0.3/jcvi/
image_by_id_v0.1/search?image_id=237 -O "237.png"
•  Perform a GET using an Araport-issued
Oauth token to the image_by_id
community service; Save the result to a
file named 237.png
•  Every Araport-hosted web service can be
used by scripts
•  We offer Javascript and Python code
libraries available as well
araport.org
Using the new service (6)
BUILD A SCIENCE APP THAT CONSUMES IT
JCVI QPCR app
integrates half a
dozen web service
APIs
Some from the QPCR
service itself, some
from ThaleMine
Araport is a mash-up
engine for plant
science data
araport.org
HOW DOES ONE BUILD A SCIENCE
APP?
araport.org
5 Steps to Creating a Science App
Install tool
chain (just
once)
Launch a new
Science App (or
clone an existing
one)
Interactively
design and
build your
app
Push to
GitHub
Install @
Araport
then
Publish!
Setup Create New Write
Code
Upload Share
araport.org
Anatomy of a Science App
Your assets live inside /app
Static HTML content for
laying out the app
JavaScript functions
defined for the app
Cascading Style Sheets
(CSS) specific to the app
JavaScript dependencies
automatically managed
via Bower
https://github.com/Arabidopsis-Information-Portal/ATExpressionProfilingApp
araport.org
1,2,3 Development
•  Application generator for quickly
bootstrapping application development
$	
  yo	
  aip-­‐science-­‐app	
  
$	
  grunt	
  
araport.org
Science Apps Workspace
Create custom
workspaces
containing
diverse public
and private
Science Apps
araport.org
Science App Store
•  Developers can share apps
privately during creation and
testing
•  Request publication under My
Account->My Apps
•  Araport staff will review the
app and either publish it or
make suggestions about how
to improve it
araport.org
Commonly Asked Questions
•  How can I get credit or attribution if my app or data is
served through Araport?
•  I have data type X - can I share it via Araport?
•  Can I keep my work private or shared with only select
people?
•  Can someone publish malicious code at Araport?
•  What if my Science App needs to compute on data,
not just access a database?
•  Can you help me learn to write web services and
Science Apps?
araport.org
Community Support
www.araport.org/devzone
Register to become an Araport developer
Join our developer calls
Explore tutorials, example code, & documentation
Learn about our 2015 Fall Developer Workshop
araport.org
araport@jcvi.org
https://www.araport.org/contact
@araport
araport.org
The Road Ahead
Science Apps
•  Improved create & publish workflow
•  Tags, ratings, comments, & live previews
•  “Compute applications”
•  Automatic display of provenance information
•  Dynamically resizable app display
•  Communication between apps
Web Services
•  Improved create & publish workflow
•  Support for “native” web services
•  Comprehensive logging and usage analytics
•  Performance and reliability improvements
araport.org
Chris Town, PI
Lisa McDonald
Education and
Outreach Coordinator
Chris Nelson
Project ManagerJason Miller, Co-PI
JCVI Technical Lead
Erik Ferlanti
Software Engineer
Vivek Krishnakumar
Bioinf. Engineer
Svetlana Karamycheva
Bioinf Engineer
Eva Huala
Project lead, TAIR
Bob Muller
Technical lead, TAIR
Gos Micklem, co-PI Sergio Contrino
Software Engineer
Matt Vaughn
co-PI
Steve Mock
Portal Engineer
Rion Dooley,
API Engineer
Matt Hanlon,
Portal Engineer
Maria Kim
Bioinf Engineer
Ben Rosen
Bioinf Analyst
Joe Stubbs,
API Engineer
Walter Moreira,
API Engineer

More Related Content

What's hot

Dynamic Actions, the Hard Parts
Dynamic Actions, the Hard PartsDynamic Actions, the Hard Parts
Dynamic Actions, the Hard Parts
Daniel McGhan
 
Intranet show and_tell_2010
Intranet show and_tell_2010Intranet show and_tell_2010
Intranet show and_tell_2010Charlie Hull
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
Joel Bowen
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Amazon Web Services
 
Getting to Grips with RESTful APIs
Getting to Grips with RESTful APIsGetting to Grips with RESTful APIs
Getting to Grips with RESTful APIs
Petko Mikhailov
 
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Terminalfour
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
Serge Huber
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Amazon Web Services
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Hafiz Ismail
 
ISoLA 2010: SADI Taverna plug-in
ISoLA 2010:  SADI Taverna plug-inISoLA 2010:  SADI Taverna plug-in
ISoLA 2010: SADI Taverna plug-in
Mark Wilkinson
 
Building Modern APIs with GraphQL
Building Modern APIs with GraphQLBuilding Modern APIs with GraphQL
Building Modern APIs with GraphQL
Amazon Web Services
 
Developing for the Atlassian Ecosystem
Developing for the Atlassian EcosystemDeveloping for the Atlassian Ecosystem
Developing for the Atlassian Ecosystem
Alex Henderson
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
jexp
 
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j
 
Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
Vibhor Grover
 
Module 1: JavaScript Basics
Module 1: JavaScript BasicsModule 1: JavaScript Basics
Module 1: JavaScript Basics
Daniel McGhan
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL Advanced
LeanIX GmbH
 
Sharepoint 2013 App
Sharepoint 2013 AppSharepoint 2013 App
Sharepoint 2013 App
Trimantra Software Solutions
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
Leigh Dodds
 
Fundamentals Of Search
Fundamentals Of SearchFundamentals Of Search
Fundamentals Of Search
Search Tools Consulting
 

What's hot (20)

Dynamic Actions, the Hard Parts
Dynamic Actions, the Hard PartsDynamic Actions, the Hard Parts
Dynamic Actions, the Hard Parts
 
Intranet show and_tell_2010
Intranet show and_tell_2010Intranet show and_tell_2010
Intranet show and_tell_2010
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Getting to Grips with RESTful APIs
Getting to Grips with RESTful APIsGetting to Grips with RESTful APIs
Getting to Grips with RESTful APIs
 
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
ISoLA 2010: SADI Taverna plug-in
ISoLA 2010:  SADI Taverna plug-inISoLA 2010:  SADI Taverna plug-in
ISoLA 2010: SADI Taverna plug-in
 
Building Modern APIs with GraphQL
Building Modern APIs with GraphQLBuilding Modern APIs with GraphQL
Building Modern APIs with GraphQL
 
Developing for the Atlassian Ecosystem
Developing for the Atlassian EcosystemDeveloping for the Atlassian Ecosystem
Developing for the Atlassian Ecosystem
 
Graphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present FutureGraphs & Neo4j - Past Present Future
Graphs & Neo4j - Past Present Future
 
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
 
Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
Module 1: JavaScript Basics
Module 1: JavaScript BasicsModule 1: JavaScript Basics
Module 1: JavaScript Basics
 
GraphQL Advanced
GraphQL AdvancedGraphQL Advanced
GraphQL Advanced
 
Sharepoint 2013 App
Sharepoint 2013 AppSharepoint 2013 App
Sharepoint 2013 App
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
 
Fundamentals Of Search
Fundamentals Of SearchFundamentals Of Search
Fundamentals Of Search
 

Viewers also liked

TM Research
TM ResearchTM Research
TM Research
Sundar Babsoza
 
Dinosaur bioinformatics
Dinosaur bioinformaticsDinosaur bioinformatics
Dinosaur bioinformatics
Matthew Vaughn
 
สมาช กกล _มเลยช_มแพ
สมาช กกล _มเลยช_มแพสมาช กกล _มเลยช_มแพ
สมาช กกล _มเลยช_มแพgilratika
 
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
EcoMachines Ventures
 
Who say/crest campaign
Who say/crest campaignWho say/crest campaign
Who say/crest campaign
cduck
 
งาน P3 tast-01
งาน P3 tast-01งาน P3 tast-01
งาน P3 tast-01gilratika
 
Jetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
Jetstream: Adding Cloud-based Computing to the National CyberinfrastructureJetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
Jetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
Matthew Vaughn
 
EcoMachines Incubator Ecosummit London 2014
EcoMachines Incubator Ecosummit London 2014EcoMachines Incubator Ecosummit London 2014
EcoMachines Incubator Ecosummit London 2014
EcoMachines Ventures
 
SxSW Proposal Submission
SxSW Proposal SubmissionSxSW Proposal Submission
SxSW Proposal Submission
StephanieElizalde
 
Packaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reusePackaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reuse
Matthew Vaughn
 
aip-developer-intro_pag2015
aip-developer-intro_pag2015aip-developer-intro_pag2015
aip-developer-intro_pag2015
Matthew Vaughn
 
Jetstream: Accessible cloud computing for the national science and engineerin...
Jetstream: Accessible cloud computing for the national science and engineerin...Jetstream: Accessible cloud computing for the national science and engineerin...
Jetstream: Accessible cloud computing for the national science and engineerin...
Matthew Vaughn
 
TM Research
TM ResearchTM Research
TM Research
Sundar Babsoza
 
Clouds, Clusters, and Containers: Tools for responsible, collaborative computing
Clouds, Clusters, and Containers: Tools for responsible, collaborative computingClouds, Clusters, and Containers: Tools for responsible, collaborative computing
Clouds, Clusters, and Containers: Tools for responsible, collaborative computing
Matthew Vaughn
 
EcoMachines Incubator
EcoMachines IncubatorEcoMachines Incubator
EcoMachines Incubator
EcoMachines Ventures
 
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURECYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
Matthew Vaughn
 
EcoMachines Incubator: Resource 2015 - Funding Options for Startups
EcoMachines Incubator: Resource 2015 - Funding Options for StartupsEcoMachines Incubator: Resource 2015 - Funding Options for Startups
EcoMachines Incubator: Resource 2015 - Funding Options for Startups
EcoMachines Ventures
 
Etude E-marketing : Email mobile - maelle urban
Etude E-marketing : Email mobile - maelle urbanEtude E-marketing : Email mobile - maelle urban
Etude E-marketing : Email mobile - maelle urban
maelleurban
 
Renforcer les formations à l'urbanisme et à l'aménagement
Renforcer les formations à l'urbanisme et à l'aménagementRenforcer les formations à l'urbanisme et à l'aménagement
Renforcer les formations à l'urbanisme et à l'aménagementrabahrabah
 
Guide bonnes pratiques energies renouvelables
Guide bonnes pratiques energies renouvelablesGuide bonnes pratiques energies renouvelables

Viewers also liked (20)

TM Research
TM ResearchTM Research
TM Research
 
Dinosaur bioinformatics
Dinosaur bioinformaticsDinosaur bioinformatics
Dinosaur bioinformatics
 
สมาช กกล _มเลยช_มแพ
สมาช กกล _มเลยช_มแพสมาช กกล _มเลยช_มแพ
สมาช กกล _มเลยช_มแพ
 
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
EcoMachines - Technology Dissemination in Practice - LESI Global Technology I...
 
Who say/crest campaign
Who say/crest campaignWho say/crest campaign
Who say/crest campaign
 
งาน P3 tast-01
งาน P3 tast-01งาน P3 tast-01
งาน P3 tast-01
 
Jetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
Jetstream: Adding Cloud-based Computing to the National CyberinfrastructureJetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
Jetstream: Adding Cloud-based Computing to the National Cyberinfrastructure
 
EcoMachines Incubator Ecosummit London 2014
EcoMachines Incubator Ecosummit London 2014EcoMachines Incubator Ecosummit London 2014
EcoMachines Incubator Ecosummit London 2014
 
SxSW Proposal Submission
SxSW Proposal SubmissionSxSW Proposal Submission
SxSW Proposal Submission
 
Packaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reusePackaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reuse
 
aip-developer-intro_pag2015
aip-developer-intro_pag2015aip-developer-intro_pag2015
aip-developer-intro_pag2015
 
Jetstream: Accessible cloud computing for the national science and engineerin...
Jetstream: Accessible cloud computing for the national science and engineerin...Jetstream: Accessible cloud computing for the national science and engineerin...
Jetstream: Accessible cloud computing for the national science and engineerin...
 
TM Research
TM ResearchTM Research
TM Research
 
Clouds, Clusters, and Containers: Tools for responsible, collaborative computing
Clouds, Clusters, and Containers: Tools for responsible, collaborative computingClouds, Clusters, and Containers: Tools for responsible, collaborative computing
Clouds, Clusters, and Containers: Tools for responsible, collaborative computing
 
EcoMachines Incubator
EcoMachines IncubatorEcoMachines Incubator
EcoMachines Incubator
 
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURECYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
CYVERSE: TRANSFORMING LIFE SCIENCE RESEARCH VIA CYBERINFRASTRUCTURE
 
EcoMachines Incubator: Resource 2015 - Funding Options for Startups
EcoMachines Incubator: Resource 2015 - Funding Options for StartupsEcoMachines Incubator: Resource 2015 - Funding Options for Startups
EcoMachines Incubator: Resource 2015 - Funding Options for Startups
 
Etude E-marketing : Email mobile - maelle urban
Etude E-marketing : Email mobile - maelle urbanEtude E-marketing : Email mobile - maelle urban
Etude E-marketing : Email mobile - maelle urban
 
Renforcer les formations à l'urbanisme et à l'aménagement
Renforcer les formations à l'urbanisme et à l'aménagementRenforcer les formations à l'urbanisme et à l'aménagement
Renforcer les formations à l'urbanisme et à l'aménagement
 
Guide bonnes pratiques energies renouvelables
Guide bonnes pratiques energies renouvelablesGuide bonnes pratiques energies renouvelables
Guide bonnes pratiques energies renouvelables
 

Similar to Developing Apps: Exposing Your Data Through Araport

aip_developer_overview_icar_2014
aip_developer_overview_icar_2014aip_developer_overview_icar_2014
aip_developer_overview_icar_2014
Matthew Vaughn
 
Arabidopsis Information Portal overview from Plant Biology Europe 2014
Arabidopsis Information Portal overview from Plant Biology Europe 2014Arabidopsis Information Portal overview from Plant Biology Europe 2014
Arabidopsis Information Portal overview from Plant Biology Europe 2014
Matthew Vaughn
 
Vaughn aip walkthru_pag2015
Vaughn aip walkthru_pag2015Vaughn aip walkthru_pag2015
Vaughn aip walkthru_pag2015
Araport
 
aip-workshop1-dev-tutorial
aip-workshop1-dev-tutorialaip-workshop1-dev-tutorial
aip-workshop1-dev-tutorial
Matthew Vaughn
 
Data Collection from Social Media Platforms
Data Collection from Social Media PlatformsData Collection from Social Media Platforms
Data Collection from Social Media Platforms
Mahmoud Yasser
 
SharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App ModelSharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App Model
James Tramel
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph
Vincent Biret
 
API Design Best Practices & Tech Talk : API Craft Meetup @ Apigee
API Design Best Practices & Tech Talk : API Craft Meetup @ ApigeeAPI Design Best Practices & Tech Talk : API Craft Meetup @ Apigee
API Design Best Practices & Tech Talk : API Craft Meetup @ ApigeeAnil Sagar
 
Presto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop MeetupPresto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop Meetup
Wojciech Biela
 
Scribe online 03 scribe online cdk and api overview
Scribe online 03   scribe online cdk and api overviewScribe online 03   scribe online cdk and api overview
Scribe online 03 scribe online cdk and api overview
Scribe Software Corp.
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
Axway
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
BIOVIA
 
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open DataArabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
Matthew Vaughn
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
Sriram Hariharan
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The MarketConSanFrancisco123
 
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Nilesh Shah
 
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles ServiceAraport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
stevemock
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
Mitch Colleran
 
SignalR Dublin ALT.NET
SignalR Dublin ALT.NETSignalR Dublin ALT.NET
SignalR Dublin ALT.NETDorin Manoli
 
Module development
Module development Module development
Module development
Araport
 

Similar to Developing Apps: Exposing Your Data Through Araport (20)

aip_developer_overview_icar_2014
aip_developer_overview_icar_2014aip_developer_overview_icar_2014
aip_developer_overview_icar_2014
 
Arabidopsis Information Portal overview from Plant Biology Europe 2014
Arabidopsis Information Portal overview from Plant Biology Europe 2014Arabidopsis Information Portal overview from Plant Biology Europe 2014
Arabidopsis Information Portal overview from Plant Biology Europe 2014
 
Vaughn aip walkthru_pag2015
Vaughn aip walkthru_pag2015Vaughn aip walkthru_pag2015
Vaughn aip walkthru_pag2015
 
aip-workshop1-dev-tutorial
aip-workshop1-dev-tutorialaip-workshop1-dev-tutorial
aip-workshop1-dev-tutorial
 
Data Collection from Social Media Platforms
Data Collection from Social Media PlatformsData Collection from Social Media Platforms
Data Collection from Social Media Platforms
 
SharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App ModelSharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App Model
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph
 
API Design Best Practices & Tech Talk : API Craft Meetup @ Apigee
API Design Best Practices & Tech Talk : API Craft Meetup @ ApigeeAPI Design Best Practices & Tech Talk : API Craft Meetup @ Apigee
API Design Best Practices & Tech Talk : API Craft Meetup @ Apigee
 
Presto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop MeetupPresto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop Meetup
 
Scribe online 03 scribe online cdk and api overview
Scribe online 03   scribe online cdk and api overviewScribe online 03   scribe online cdk and api overview
Scribe online 03 scribe online cdk and api overview
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open DataArabidopsis Information Portal: A Community-Extensible Platform for Open Data
Arabidopsis Information Portal: A Community-Extensible Platform for Open Data
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The Market
 
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
 
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles ServiceAraport Workshop Tutorial 2: Authentication and the Agave Profiles Service
Araport Workshop Tutorial 2: Authentication and the Agave Profiles Service
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
 
SignalR Dublin ALT.NET
SignalR Dublin ALT.NETSignalR Dublin ALT.NET
SignalR Dublin ALT.NET
 
Module development
Module development Module development
Module development
 

Recently uploaded

Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
Erdal Coalmaker
 
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Ana Luísa Pinho
 
GBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram StainingGBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram Staining
Areesha Ahmad
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
RenuJangid3
 
Structural Classification Of Protein (SCOP)
Structural Classification Of Protein  (SCOP)Structural Classification Of Protein  (SCOP)
Structural Classification Of Protein (SCOP)
aishnasrivastava
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
Health Advances
 
EY - Supply Chain Services 2018_template.pptx
EY - Supply Chain Services 2018_template.pptxEY - Supply Chain Services 2018_template.pptx
EY - Supply Chain Services 2018_template.pptx
AlguinaldoKong
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
anitaento25
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
Richard Gill
 
Mammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also FunctionsMammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also Functions
YOGESH DOGRA
 
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
muralinath2
 
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
University of Maribor
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerin
ossaicprecious19
 
GBSN - Microbiology (Lab 4) Culture Media
GBSN - Microbiology (Lab 4) Culture MediaGBSN - Microbiology (Lab 4) Culture Media
GBSN - Microbiology (Lab 4) Culture Media
Areesha Ahmad
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
moosaasad1975
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate Pathway
AADYARAJPANDEY1
 
Richard's entangled aventures in wonderland
Richard's entangled aventures in wonderlandRichard's entangled aventures in wonderland
Richard's entangled aventures in wonderland
Richard Gill
 
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Sérgio Sacani
 
extra-chromosomal-inheritance[1].pptx.pdfpdf
extra-chromosomal-inheritance[1].pptx.pdfpdfextra-chromosomal-inheritance[1].pptx.pdfpdf
extra-chromosomal-inheritance[1].pptx.pdfpdf
DiyaBiswas10
 
Citrus Greening Disease and its Management
Citrus Greening Disease and its ManagementCitrus Greening Disease and its Management
Citrus Greening Disease and its Management
subedisuryaofficial
 

Recently uploaded (20)

Unveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdfUnveiling the Energy Potential of Marshmallow Deposits.pdf
Unveiling the Energy Potential of Marshmallow Deposits.pdf
 
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
 
GBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram StainingGBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram Staining
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
 
Structural Classification Of Protein (SCOP)
Structural Classification Of Protein  (SCOP)Structural Classification Of Protein  (SCOP)
Structural Classification Of Protein (SCOP)
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
 
EY - Supply Chain Services 2018_template.pptx
EY - Supply Chain Services 2018_template.pptxEY - Supply Chain Services 2018_template.pptx
EY - Supply Chain Services 2018_template.pptx
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
 
Mammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also FunctionsMammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also Functions
 
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
Circulatory system_ Laplace law. Ohms law.reynaults law,baro-chemo-receptors-...
 
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerin
 
GBSN - Microbiology (Lab 4) Culture Media
GBSN - Microbiology (Lab 4) Culture MediaGBSN - Microbiology (Lab 4) Culture Media
GBSN - Microbiology (Lab 4) Culture Media
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate Pathway
 
Richard's entangled aventures in wonderland
Richard's entangled aventures in wonderlandRichard's entangled aventures in wonderland
Richard's entangled aventures in wonderland
 
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
 
extra-chromosomal-inheritance[1].pptx.pdfpdf
extra-chromosomal-inheritance[1].pptx.pdfpdfextra-chromosomal-inheritance[1].pptx.pdfpdf
extra-chromosomal-inheritance[1].pptx.pdfpdf
 
Citrus Greening Disease and its Management
Citrus Greening Disease and its ManagementCitrus Greening Disease and its Management
Citrus Greening Disease and its Management
 

Developing Apps: Exposing Your Data Through Araport

  • 1. araport.org Developing Apps: Exposing Your Data Through Araport Matt Vaughn Director, Life Sciences Computing Texas Advanced Computing Center vaughn@tacc.utexas.edu | @mattdotvaughn | www.slideshare.net/mattdotvaughn
  • 2. araport.org Overview •  Why contribute to Araport? •  How does one create a web service? •  How does one build a Science App? •  Commonly asked questions •  What resources are available?
  • 3. araport.org Why become an Araport contributor? •  Recognition •  Exposure •  Feedback •  Interoperability •  Professional presentation •  Reusability
  • 4. araport.org Araport: A Road Map API.ARAPORT.ORG CLI clients, Scripts, 3rd party applications Core Resources AGAVE apps meta files profile jobssystems ADAMA manage enroll a b c d e f Data Resources API Types •  Query •  Map* •  Generic •  Pass-through •  Single-sign on •  Metering •  Unified logging •  API versioning •  Automatic HTTPS + CORS REST* CGI SOAP New Web Services InterMine Chado & Tripal Computing Storage Database APPS APIs
  • 5. araport.org HOW DOES ONE CREATE A WEB SERVICE?
  • 6. araport.org Araport Data and Microservice API •  Implement REST-like web services •  Allow real-time integration with and transformation of existing web-based services •  Promote interoperability –  Simple, extensible controlled vocabulary for queries –  Responses can conform to common schemas* –  GLOBAL SEARCH •  Solve some annoying problems –  Provide HTTPS + valid SSL certificate –  Enable Cross Origin Scripting Support (CORS) –  Implement authenticated access to services •  BE EASY TO ADOPT, USE, AND MAINTAIN
  • 7. araport.org Case Study: TIGR Gene Expression Database •  NSF Arabidopsis 2010 project (#0520022) •  How to make this resource more broadly usable and useful? – Create modernized web services – Build an interactive science app
  • 8. araport.org Creating a new data service in 5 easy steps 8 •  Check out a template •  Write and debug service locally •  Write docs •  Describe data sources Push to GitHub* Register new service using ADAMA Test and refine the microservice Share with colleagues or the public Develop a Science App using APIs Write Code Upload Enroll @ Araport Use it Share Make a Science App
  • 9. araport.org Example Source Code https://github.com/ Arabidopsis-Information-Portal/ jcvi-qpcr-services Shared code among services ADAMA services have search and/or list functions Implement some query logic Make a request to the server Transform result to JSON & send it back
  • 10. araport.org Example Metadata (1) Who has contributed? Basic display fields Configuration fields and values
  • 11. araport.org Example Metadata (2) Definitions for the service’s various parameters What are the data sources (can be nested!)
  • 12. araport.org Creating a new data service in 5 easy steps 12 •  Check out a template •  Write and debug service locally •  Write docs •  Describe data sources Push to GitHub* Register new service using ADAMA Test and refine the microservice Share with colleagues or the public Develop a Science App using APIs Write Code Upload Enroll @ Araport Use it Share Make a Science App
  • 13. araport.org Using the new service (1) •  Use the Araport API Explorer Home->Tools->Web Services- >Community Data •  Use the Javascript console embedded in your browser •  Manually via command line tools like cURL or httpie
  • 14. araport.org Using the new service (2) More Information
  • 15. araport.org Using the new service (3) Try this service
  • 16. araport.org Using the new service (4) Every Araport web service is available via Javascript console Data API namespace Individual Data API > Agave.api.adama.getNamespaces()
  • 17. araport.org Using the new service (5) curl -X GET -sk -H "Authorization: Bearer 17f4700fb4ffa9ab32f1bf560e8a2b8" https:// api.araport.org/community/v0.3/jcvi/ image_by_id_v0.1/search?image_id=237 -O "237.png" •  Perform a GET using an Araport-issued Oauth token to the image_by_id community service; Save the result to a file named 237.png •  Every Araport-hosted web service can be used by scripts •  We offer Javascript and Python code libraries available as well
  • 18. araport.org Using the new service (6) BUILD A SCIENCE APP THAT CONSUMES IT JCVI QPCR app integrates half a dozen web service APIs Some from the QPCR service itself, some from ThaleMine Araport is a mash-up engine for plant science data
  • 19. araport.org HOW DOES ONE BUILD A SCIENCE APP?
  • 20. araport.org 5 Steps to Creating a Science App Install tool chain (just once) Launch a new Science App (or clone an existing one) Interactively design and build your app Push to GitHub Install @ Araport then Publish! Setup Create New Write Code Upload Share
  • 21. araport.org Anatomy of a Science App Your assets live inside /app Static HTML content for laying out the app JavaScript functions defined for the app Cascading Style Sheets (CSS) specific to the app JavaScript dependencies automatically managed via Bower https://github.com/Arabidopsis-Information-Portal/ATExpressionProfilingApp
  • 22. araport.org 1,2,3 Development •  Application generator for quickly bootstrapping application development $  yo  aip-­‐science-­‐app   $  grunt  
  • 23. araport.org Science Apps Workspace Create custom workspaces containing diverse public and private Science Apps
  • 24. araport.org Science App Store •  Developers can share apps privately during creation and testing •  Request publication under My Account->My Apps •  Araport staff will review the app and either publish it or make suggestions about how to improve it
  • 25. araport.org Commonly Asked Questions •  How can I get credit or attribution if my app or data is served through Araport? •  I have data type X - can I share it via Araport? •  Can I keep my work private or shared with only select people? •  Can someone publish malicious code at Araport? •  What if my Science App needs to compute on data, not just access a database? •  Can you help me learn to write web services and Science Apps?
  • 26. araport.org Community Support www.araport.org/devzone Register to become an Araport developer Join our developer calls Explore tutorials, example code, & documentation Learn about our 2015 Fall Developer Workshop
  • 28. araport.org The Road Ahead Science Apps •  Improved create & publish workflow •  Tags, ratings, comments, & live previews •  “Compute applications” •  Automatic display of provenance information •  Dynamically resizable app display •  Communication between apps Web Services •  Improved create & publish workflow •  Support for “native” web services •  Comprehensive logging and usage analytics •  Performance and reliability improvements
  • 29. araport.org Chris Town, PI Lisa McDonald Education and Outreach Coordinator Chris Nelson Project ManagerJason Miller, Co-PI JCVI Technical Lead Erik Ferlanti Software Engineer Vivek Krishnakumar Bioinf. Engineer Svetlana Karamycheva Bioinf Engineer Eva Huala Project lead, TAIR Bob Muller Technical lead, TAIR Gos Micklem, co-PI Sergio Contrino Software Engineer Matt Vaughn co-PI Steve Mock Portal Engineer Rion Dooley, API Engineer Matt Hanlon, Portal Engineer Maria Kim Bioinf Engineer Ben Rosen Bioinf Analyst Joe Stubbs, API Engineer Walter Moreira, API Engineer