foldershare: building a data sharing cloud on drupal 8 for ... · node : 25,639 (drupal core 8.5.0)...

50
Amit Chourasia, David Nadeau & Michael Norman San Diego Supercomputer Center, UC San Diego Project code: dibbs.seedme.org/downloads or drupal.org/projects/foldershare drupal.org/projects/smalldata Trial website: sandbox.seedme.org Project website: dibbs.seedme.org FolderShare: Building a data sharing cloud on Drupal 8 for researchers

Upload: others

Post on 08-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

AmitChourasia,DavidNadeau&MichaelNormanSanDiegoSupercomputerCenter,UCSanDiego

Projectcode: dibbs.seedme.org/downloads

or

drupal.org/projects/foldershare

drupal.org/projects/smalldata

Trialwebsite: sandbox.seedme.org

Projectwebsite:dibbs.seedme.org

FolderShare:BuildingadatasharingcloudonDrupal8forresearchers

Page 2: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

PresentaHonOverview1.  Background&moHvaHon2.  Architecture3.  SeedMe2plaPorm

FolderShare:VirtualfilesystemforDrupal

»  EnHtydatamodel&accesscontrol»  Filemanagement&security»  ViewsintegraHon»  UI&Commandplugins»  FileformaUers»  Webservices

SmalldatamoduleandAPI

–  VisualizaHon4.  Targetusers/Usecases5.  Screenshots6.   Demo

Page 3: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SeedMe1

a.k.a.StreamencodeexploreanddisseminateMyexperiments•  VideoencodingfromvisualizaDonimageswasthemainfocus

•  BasedonDrupal7•  InproducHonasPlaPormasaService(PaaS)

SeedMe2:Datasharingbuildingblocks

EvoluHonoftheoriginalSeedMeproject(Completerewrite)•  DataorganizaDon,sharinganddatamanagementisthemainfocus

•  IncorporatesuserfeedbackfromoriginalSeedMeproject•  BasedonDrupal8•  BuiltfordistribuHon(opensource)andextension

SeedMeProjects

Page 4: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SeedMe2’sfocus•  Enablerapidaccesstodatatoconsumabledataovertheweb

Mustbehandledbystockwebbrowser(Upload<2GBperfile)Mustbedisplayableonmanydevices(PhonetoPC)

•  RichpresentaDonSupportcustomizaHon/extension

•  DiscoverabilityIndexandsearchfiles,descripHons,etc..

•  ThreewayinteracDonWebbrowserCommandlineAPI

Page 5: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Datamanagementstumblingblocks

Transfer Storage CollaboraJon AutomaJonAccesscontrol

ButwhataboutPresentaJonandDiscovery?

Page 6: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Datamanagementstumblingblocks

Transfer Storage CollaboraJon AutomaJonAccesscontrol

Issuesduetocontentdispersion

DescripJoninsomeone’smindDataintheCloud Discussiononemails

ThreeD’s:Data,DescripGon,Discussion

Page 7: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FilesystembasedsoluDons

RelatedsoluHons

ContentmanagementsystembasedsoluDonsHubZeroFigShare

MiddlewareGlobusIRodsNEWT

SoNwarerepositoriesGitHubSVNCVS

FilehosDngClouddrives(Dropbox,etc)WebDAV

ToolsSCPFTP

LimitaDonsofexisDngsoluDons Lackextensibility Lacksupportforrichcontent(descripHon,discussion,etc…) Lackindependentdevelopersupport Lack3wayinteracHonviawebbrowser&commandline&API Resourcerestricted

Page 8: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Workflow

Update as desired

Description

CreateProject

Sharing

Add foldersView

SearchDownload

Web browser, Command line, REST or App

Sign In

1 2

3

4

Upload files

Page 9: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Users

Drupal8

Architecture

Modules

•  Virtualfilesystem•  Accesscontrol•  Hierarchicalstorage•  Commandplugins•  UIanddisplay•  Search/index•  Webservices

•  FileformaUers•  QuickVisualizaHon

Webserver(Apache+PHP)

Database(MySQL)

Webbrowser

RESTclients

Commandline

Smalldata(PHPlibrary)

Drupal8

Contributed

Modules

e.g.

Federated

AuthenDcaDon

viaOIDC

module

ProjectcontribuHons

Page 10: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Drupal(ContentManagementSystem)

•  Modularandextensiblearchitecture(1,000+communitycontributedmodulesforversion8)•  Widelyusedinindustry,academiaandgovernment(thirdmostpopularCMSonweb)•  Largedeveloper&supportcommunity(4,000contributorsforDrupal8core+thousandsmore)•  Securityadvisoryandupdatesforcoreandstablecontributed

moduleseverymonth•  VersaHledeploymentopHons(personalhosHng,insHtuHonalhosHng,cloudhosHng)

Page 11: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderSharemodule

•  Virtualfilesystem(fieldable):–  EnHtytype&API– Accesscontrols– Usagetracking–  Views,displays,breadcrumbs,forms–  PluginsforfieldformaUers,search,views,acHons,andqueueworkers

•  Configurablebysites–  e.g.Keywords,comments,flags,DOIs

•  Extensiblebydevelopers

Page 12: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Files&folders

•  Childrenpointtoparents– ParentIDsenablefastqueriesforallchildrenofafolder

– RootIDsenablefastqueriesforaccesscontrolsandbreadcrumbs

parenHdpointstoimmediateparent

rooHdpointstotopfolder

Page 13: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Accesscontrols

•  Drupalaccount-based•  Permissions+accesscontrollistontopfolders– Listofusersthatcanviewandauthor

•  TopfoldercontrolsenHrehierarchy– SimplerthandesktopOSes– Similartofilesharingservices– Fasttocheckaccess

Page 14: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Filestorage

•  Foldersonlyexistindatabase•  Filesdescribedindatabase&storedondisk

•  Diskdirectory!==folderhierarchy– BeUerforsecurityandloadbalancing– Fileshavegeneratednames

•  Avoidsnamecollisions•  Avoidscharactersetandnamelengthlimits

Page 15: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Views

•  Listpersonal,public,andsharedfiles&folders– Pages&embeddedviewsinfolderpages

•  Integrateddesktop-likeUI– Selectfilesandfolders– Thenchoosemenucommand

•  ThreeUIvariants:– NoscripHng– ScripHngbutnoAJAX– ScripHngwithAJAX

Page 16: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Plugins

•  FieldformaUers– Foldernames,enHtyreferences,MIME-typeicons

•  Search–  Indexandpresentresults

•  Queueworker– Updatefolderhierarchysizesinbackground

•  AcHons&customcommands– MenuUIitemstoadd,delete,etc

Page 17: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Totallinesofphpcode

Node:25,639(Drupalcore8.5.0)Foldershare:50,156(Alphaversion)

0

20,000

40,000

60,000

80,000

100,000

120,000

140,000

v1 v2 v3 v4 v5 alpha

Linesofcode

Release

Foldersharecodemain

PHP

Docs

0

2000

4000

6000

8000

10000

12000

v1 v2 v3 v4 v5 alpha

Linesofcode

Release

Foldersharecodemisc

JS

YML

CSS

TWIG

TXT

Codetrivia

Page 18: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FoldershareAPIDocumentaHon

Page 19: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SmallDataAPI&Module

•  Structureddataparsers&writers– Tables,trees,andgraphs–  JSON,CSV,TSV,TXT,etc.

•  FieldformaUers– Light-weightvisualizaHon– Lineplots,barcharts,piecharts,etc.

SmallData

Page 20: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FORADMINISTRATORS

FolderShareconfiguraDonAdminmenuStructure>FolderShare

Page 21: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonFieldsManagefields,forms&display

ConfiguraHonlocatedinadminmenuStructure>FolderShare

Page 22: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonFiles

StoragelocaHon&uploadrestricHons

Page 23: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonInterface

Commandplugins

Page 24: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonLists

ManagelisHngoffileandfolders

Page 25: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonSearch(opDonal)

Page 26: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonSecurity

ManagesharingcapabiliHes

Page 27: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareconfiguraDonWebservices(opDonal)

ManageRESTcapabiliHes

Page 28: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareRESTseWngsRequiresRESTUIcontributedmodule

ManageRESToperaHons

Page 29: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderShareUsageAdminmenuReports>FolderShareusage

Page 30: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FolderSharepermissions

Page 31: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

FORUSERS

Page 32: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Topfoldersownedbyyou

Topfolderssharedwithyou

Publictopfolders

Menu

Theselistsdisplaytoplevelfolders

FoldersmayhaveadescripHon

Page 33: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

MenuopHons–withnoselecHon

Page 34: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

MenuopHons–withselecHon

Page 35: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Sharingformtorestrictaccess

Page 36: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SortablelisHngoffilesandfolders.

Differentusers

Page 37: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Breadcrumbsshowspath

Page 38: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

EveryfolderandfilemayaddadescripHon.(FormaUedtextfieldakaBodyfieldinDrupal’sNode)

Page 39: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

AddcustomsfieldssuchasComments,Keywords/tags,taxonomytoFolderShare.

TheFolderShare

enDtyisfieldable.

Page 40: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

MenuopHonschangeonselecHon

Page 41: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Viewsubfolder

Breadcrumbsshowspath

Page 42: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

VisualizaHonscanbeswitchedinteracHvelytodifferentcharttypes

QuickvisualizaHonofCSV&JSONfiles

Page 43: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SamplecommandlineinteracHonfoldershare --helpfoldershare --host http://demo.seedme.org --user dave --password ’cliRocks!'

help

Page 44: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SamplecommandlineinteracHonfoldershare --helpfoldershare --host http://demo.seedme.org --user dave --password ’cliRocks!'

help

ls --help ls / ls -l "/Classification Collection" ls -l "/Classification Collection/Preliminary Results"

mkdir --help mkdir "/test" mkdir "/test/data"

upload --help upload "plots/villi.png" "/test" upload "plots/composite.png" "/test” Upload "sample-small-data/OpenGL mesh memory use.csv" "/test/data" Upload "sample-small-data/Image classification breakdown schedule.json" "/test/data"

download --help download "/test" "/Users/amit/downloads"

rm --help rm -rf "/test”

Page 45: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

SeedMe2–Targetusers/Usecases•  Researchers

–  CollaboraHonhubforaprojectorpersonalwebsite•  Customprojectrepositories

–  IncludeprojectspecificcustomizaHon(e.g.taxonomy,keywords)•  Developers

–  IntegrateyourscienHficapplicaHon•  Sciencegateways

–  Datasharing–  Datapublishing–  Dataescrowservice

•  CyberInfrastructureproviders–  OfferSeedMe2plaPormtoyouruserbase/communiHes

Page 46: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Realusagebyphysicists

Page 47: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Deployment/serviceopHonsDIY-Runyourowninstance(Yourbranding+domain)•  Onyourownhardware•  Cloudhosted

Provider/vendorrunsaninstance•  YourinsHtuHon•  CIcentersorITservices•  Commercialvendors

Cloudservice(Ourdomain&branding)

Page 48: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Explorerswelcome(webbrowserneeded)Trialwebsite:sandbox.seedme.org

Tryityourself!

DevelopersinvitedDownloadcode:h_ps://dibbs.seedme.org/downloads

Page 49: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Team

AmitChourasia,DavidNadeau,DmitryMishin&MichaelNormanSanDiegoSupercomputerCenter|UniversityofCaliforniaSanDiego

SeedMe

Acknowledgements

AllusersandapplicaHonintegratorsfortheirvaluablefeedback

NaDonalScienceFoundaDon

ThismaterialisbaseduponworksupportedbytheNaHonalScienceFoundaHonunderGrantNo.ACI-1235505andACI-1443083

"Anyopinions,findings,andconclusionsorrecommendaHonsexpressedinthismaterialarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheNaHonalScienceFoundaHon."

Page 50: FolderShare: Building a data sharing cloud on Drupal 8 for ... · Node : 25,639 (Drupal core 8.5.0) Foldershare: 50,156 (Alpha version) 0 20,000 40,000 60,000 80,000 100,000 120,000

Talk to usamit sdsc.edu

Keen to learn about potential uses cases in your work

Tutorial: Thursday afternoonBuilding data centric website for research projects and research groups

Requirements

1.   Installdocker2.   Downloadstart/finalimages(~1.2GB)