SlideShare a Scribd company logo
1 of 17
Web Application
Development
Jonathan Yoder
Web Application Engineer
May 16, 2013
Topics for Today
• Single Sign On with CAS
• Lung Cancer Explorer Changes
• Introduction to RESTful Web Services
• RESTful Services
• LCDB
• ProbeMapper
• JSON Table Schema Serialization/Deserialization
• Authentication with CasHmac
• Authorization with CasHmac
• Graph Databases with Neo4j
Single Sign on with CAS
• “Central Authentication Service”
• Open Source Project available at http://www.jasig.org/cas
• Runs on Tomcat (no need for additional servers)
• Integrates with Web Applications without modification
• Proxy Support for Web Services
CAS Authentication Process
Central
Authentication
Server
Web Application
1. Request
3. Ticket
2. Authentication
4. Validation
<ticket>
Lung Cancer Explorer
• Meta Analysis
• Survival Analysis with Group Segmentation
• Dataset Suggestions
• Dataset Filtering
• Analysis Caching with Redis
Intro to RESTful Web Services
• Terminology
• Representational State Transfer
• GET, DELETE, PUT, POST
• Benefits
• Popular and simple (vs. SOAP)
• Responds with valid JavaScript (JSON)
• Supported by many open-source frameworks
• Very easy to consume
• Purpose
• Provide data to applications
• Expose services to outside applications
Example REST Request
http://qbrc.swmed.edu/probemapper/entrez/gen
es?gene_id=3845,51562&taxonomy=9606
Example REST Response
{
"java_type": "edu.swmed.qbrc.probemapper.shared.models.Gene",
"fields": [
...
{
"id": "geneId",
"label": "geneId",
"type": "integer"
},
{
"id": "name",
"label": "name",
"type": "string"
},
...
],
"data": [
[
"12",
"HGNC:6407|MIM:190070|Ensembl:ENSG00000133703|HPRD:01817|Vega:OTTHUMG00000171193",
"v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog",
3845,
1220665,
"-",
"12p12.1",
"v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog",
"O",
"KRAS",
"KRAS",
"C-K-RAS|K-RAS2A|K-RAS2B|K-RAS4A|K-RAS4B|KI-RAS|KRAS1|KRAS2|NS|NS3|RASK2",
9606,
"protein-coding"
],
[
"14",
"HGNC:20427|MIM:609431|Ensembl:ENSG00000151332|HPRD:14368|Vega:OTTHUMG00000140222",
"MAP3K12 binding inhibitory protein 1",
51562,
1229582,
"BM-015",
"14q13.3",
"MAP3K12 binding inhibitory protein 1",
"O",
"MBIP",
"MBIP",
"-",
9606,
"protein-coding"
]
]
}
Example REST Response
….
"fields": [
...
{
"id": "geneId",
"label": "geneId",
"type": "integer”
},
{
"id": "name",
"label": "name",
"type": "string”
},
...
],
Example REST Response
"data”:
[[
"12",
"HGNC:6407|MIM:190070|…|HPRD:01817|Vega:OTTHUMG00000171193",
"v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog",
3845,
1220665,
"-",
"12p12.1",
"v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog",
"O",
"KRAS",
"KRAS",
"C-K-RAS|K-RAS2A|K-RAS2B|…|KI-RAS|KRAS1|KRAS2|NS|NS3|RASK2",
9606,
"protein-coding"
],
…
]
New RESTful Web Services
• LCDB
• Datasets (GET, DELETE, and PUT)
• Patients (GET, DELETE, and PUT)
• Samples (GET, DELETE, and PUT)
• Expression Data (GET, DELETE, and PUT)
• Histologies
• Normalizations
• Races
• Smoking Statuses
• Tissues
New RESTful Web Services
• ProbeMapper (migrated from SOAP)
• Authorities
• Platforms (GET, DELETE, and PUT)
• Probes (GET, DELETE, and PUT)
• Genes
• Genes for Probes (GET, DELETE, and PUT)
• Probes for Genes
• Lung Cancer Explorer uses ProbeMapper
JSON Table Schema
• For more
information:http://www.dataprotocols.org/en/latest/json-
table-schema.html
• A “simple schema for tabular data”
• Saves bandwidth by assuming a consistent format
• Speeds our implementations of ProbeMapper and LCDB with
our custom Jacksonate serializer/deserializer.
• See https://github.com/QBRC/Jacksonate
• See https://github.com/QBRC/Guiberest
Authentication with CasHmac
• Supports CAS for authentication
• Supports HMAC for authentication
• User has and ID and a Secret Key
• Request information is combined into a string
• User’s Secret Key is used to create a hash from the string
• User’s ID is sent with the request
• Server looks up user’s Secret Key based on ID
• Server recreates hash and verifies that it matches the client’s
hash that was included with the request.
• See https://github.com/QBRC/CasHmac
• See https://github.com/QBRC/Guiberest
Authorization with CasHmac
• Method-based authorization by Role
• ACL-based: Access Control List
• Authorization to access/update/delete a specific object
• Authorization may be tied to dependent objects
• Allows us to annotate our classes for security
Graph Databases with Neo4j
• See http://www.neo4j.org/
• Graph Databases:
• Store objects
• Focus on relationships between objects (uses verbs)
• Jonathan -> (is employed by) -> QBRC
• Jeff -> (supervises) -> Jonathan
• Allow very fast retrieval of objects based on their relationships to
one another
• Neo4j and Bioinformatics:
http://watch.neo4j.org/video/47275633
Summary
• Single Sign On with CAS
• Lung Cancer Explorer Changes
• RESTful Services
• Graph Databases with Neo4j

More Related Content

What's hot

Extensibility of a database api with js
Extensibility of a database api with jsExtensibility of a database api with js
Extensibility of a database api with js
ArangoDB Database
 

What's hot (13)

Proxy server
Proxy serverProxy server
Proxy server
 
Gateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with GlobusGateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with Globus
 
Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)
 
Gateways 2020 Tutorial - Large Scale Data Transfer with Globus
Gateways 2020 Tutorial - Large Scale Data Transfer with GlobusGateways 2020 Tutorial - Large Scale Data Transfer with Globus
Gateways 2020 Tutorial - Large Scale Data Transfer with Globus
 
Using the Cascade Server Web Service API, by Artur Tomusiak
Using the Cascade Server Web Service API, by Artur TomusiakUsing the Cascade Server Web Service API, by Artur Tomusiak
Using the Cascade Server Web Service API, by Artur Tomusiak
 
Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)
 
Data Orchestration at Scale (GlobusWorld Tour West)
Data Orchestration at Scale (GlobusWorld Tour West)Data Orchestration at Scale (GlobusWorld Tour West)
Data Orchestration at Scale (GlobusWorld Tour West)
 
CodeMash 2013 Microsoft Data Stack
CodeMash 2013 Microsoft Data StackCodeMash 2013 Microsoft Data Stack
CodeMash 2013 Microsoft Data Stack
 
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
 
Gateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with GlobusGateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with Globus
 
Extensibility of a database api with js
Extensibility of a database api with jsExtensibility of a database api with js
Extensibility of a database api with js
 
Creating data centric microservices
Creating data centric microservicesCreating data centric microservices
Creating data centric microservices
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
 

Viewers also liked (6)

Stories Inc. Deck
Stories Inc. DeckStories Inc. Deck
Stories Inc. Deck
 
Scientific Software Development
Scientific Software DevelopmentScientific Software Development
Scientific Software Development
 
Scientific Computing - Hardware
Scientific Computing - HardwareScientific Computing - Hardware
Scientific Computing - Hardware
 
Creating R Packages
Creating R PackagesCreating R Packages
Creating R Packages
 
Tech talk ggplot2
Tech talk   ggplot2Tech talk   ggplot2
Tech talk ggplot2
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Similar to Group meeting may 16 2013

Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
Christian Posta
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
Lukáš Fryč
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
Jeelani Shaik
 

Similar to Group meeting may 16 2013 (20)

JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native CompanionJakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service mesh
 
Microservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the RefactoringMicroservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the Refactoring
 
ASP.NET MVC 5 and SignalR 2
ASP.NET MVC 5 and SignalR 2ASP.NET MVC 5 and SignalR 2
ASP.NET MVC 5 and SignalR 2
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
Microservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service meshMicroservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service mesh
 
Restful风格ž„web服务架构
Restful风格ž„web服务架构Restful风格ž„web服务架构
Restful风格ž„web服务架构
 
RESTful web
RESTful webRESTful web
RESTful web
 
Arabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, IntroductionArabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, Introduction
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
Building microservices with vert.x 3.0
Building microservices with vert.x 3.0Building microservices with vert.x 3.0
Building microservices with vert.x 3.0
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
 
Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2Microservices with Apache Camel, Docker and Fabric8 v2
Microservices with Apache Camel, Docker and Fabric8 v2
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
Data Stream Processing for Beginners with Kafka and CDC
Data Stream Processing for Beginners with Kafka and CDCData Stream Processing for Beginners with Kafka and CDC
Data Stream Processing for Beginners with Kafka and CDC
 
Windows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside worldWindows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside world
 
IT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database ConnectivityIT2255 Web Essentials - Unit V Servlets and Database Connectivity
IT2255 Web Essentials - Unit V Servlets and Database Connectivity
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Group meeting may 16 2013

  • 1. Web Application Development Jonathan Yoder Web Application Engineer May 16, 2013
  • 2. Topics for Today • Single Sign On with CAS • Lung Cancer Explorer Changes • Introduction to RESTful Web Services • RESTful Services • LCDB • ProbeMapper • JSON Table Schema Serialization/Deserialization • Authentication with CasHmac • Authorization with CasHmac • Graph Databases with Neo4j
  • 3. Single Sign on with CAS • “Central Authentication Service” • Open Source Project available at http://www.jasig.org/cas • Runs on Tomcat (no need for additional servers) • Integrates with Web Applications without modification • Proxy Support for Web Services
  • 4. CAS Authentication Process Central Authentication Server Web Application 1. Request 3. Ticket 2. Authentication 4. Validation <ticket>
  • 5. Lung Cancer Explorer • Meta Analysis • Survival Analysis with Group Segmentation • Dataset Suggestions • Dataset Filtering • Analysis Caching with Redis
  • 6. Intro to RESTful Web Services • Terminology • Representational State Transfer • GET, DELETE, PUT, POST • Benefits • Popular and simple (vs. SOAP) • Responds with valid JavaScript (JSON) • Supported by many open-source frameworks • Very easy to consume • Purpose • Provide data to applications • Expose services to outside applications
  • 8. Example REST Response { "java_type": "edu.swmed.qbrc.probemapper.shared.models.Gene", "fields": [ ... { "id": "geneId", "label": "geneId", "type": "integer" }, { "id": "name", "label": "name", "type": "string" }, ... ], "data": [ [ "12", "HGNC:6407|MIM:190070|Ensembl:ENSG00000133703|HPRD:01817|Vega:OTTHUMG00000171193", "v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog", 3845, 1220665, "-", "12p12.1", "v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog", "O", "KRAS", "KRAS", "C-K-RAS|K-RAS2A|K-RAS2B|K-RAS4A|K-RAS4B|KI-RAS|KRAS1|KRAS2|NS|NS3|RASK2", 9606, "protein-coding" ], [ "14", "HGNC:20427|MIM:609431|Ensembl:ENSG00000151332|HPRD:14368|Vega:OTTHUMG00000140222", "MAP3K12 binding inhibitory protein 1", 51562, 1229582, "BM-015", "14q13.3", "MAP3K12 binding inhibitory protein 1", "O", "MBIP", "MBIP", "-", 9606, "protein-coding" ] ] }
  • 9. Example REST Response …. "fields": [ ... { "id": "geneId", "label": "geneId", "type": "integer” }, { "id": "name", "label": "name", "type": "string” }, ... ],
  • 10. Example REST Response "data”: [[ "12", "HGNC:6407|MIM:190070|…|HPRD:01817|Vega:OTTHUMG00000171193", "v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog", 3845, 1220665, "-", "12p12.1", "v-Ki-ras2 Kirsten rat sarcoma viral oncogene homolog", "O", "KRAS", "KRAS", "C-K-RAS|K-RAS2A|K-RAS2B|…|KI-RAS|KRAS1|KRAS2|NS|NS3|RASK2", 9606, "protein-coding" ], … ]
  • 11. New RESTful Web Services • LCDB • Datasets (GET, DELETE, and PUT) • Patients (GET, DELETE, and PUT) • Samples (GET, DELETE, and PUT) • Expression Data (GET, DELETE, and PUT) • Histologies • Normalizations • Races • Smoking Statuses • Tissues
  • 12. New RESTful Web Services • ProbeMapper (migrated from SOAP) • Authorities • Platforms (GET, DELETE, and PUT) • Probes (GET, DELETE, and PUT) • Genes • Genes for Probes (GET, DELETE, and PUT) • Probes for Genes • Lung Cancer Explorer uses ProbeMapper
  • 13. JSON Table Schema • For more information:http://www.dataprotocols.org/en/latest/json- table-schema.html • A “simple schema for tabular data” • Saves bandwidth by assuming a consistent format • Speeds our implementations of ProbeMapper and LCDB with our custom Jacksonate serializer/deserializer. • See https://github.com/QBRC/Jacksonate • See https://github.com/QBRC/Guiberest
  • 14. Authentication with CasHmac • Supports CAS for authentication • Supports HMAC for authentication • User has and ID and a Secret Key • Request information is combined into a string • User’s Secret Key is used to create a hash from the string • User’s ID is sent with the request • Server looks up user’s Secret Key based on ID • Server recreates hash and verifies that it matches the client’s hash that was included with the request. • See https://github.com/QBRC/CasHmac • See https://github.com/QBRC/Guiberest
  • 15. Authorization with CasHmac • Method-based authorization by Role • ACL-based: Access Control List • Authorization to access/update/delete a specific object • Authorization may be tied to dependent objects • Allows us to annotate our classes for security
  • 16. Graph Databases with Neo4j • See http://www.neo4j.org/ • Graph Databases: • Store objects • Focus on relationships between objects (uses verbs) • Jonathan -> (is employed by) -> QBRC • Jeff -> (supervises) -> Jonathan • Allow very fast retrieval of objects based on their relationships to one another • Neo4j and Bioinformatics: http://watch.neo4j.org/video/47275633
  • 17. Summary • Single Sign On with CAS • Lung Cancer Explorer Changes • RESTful Services • Graph Databases with Neo4j