54
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

FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

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 … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

AboutmeAmitChourasiaSanDiegoSupercomputerCenter@UCSanDiego•  VisualizaJonscholar/evangelist•  Lecturer/Instructor•  Interests

–  HighperformancecompuJng–  Datastewardship–  Computergraphics

Drupalusersince~2006|version4.7.4•  Personalwebsite(Drupal4-8:150pages)•  Projectwebsite(Drupal5:50,000+pages)•  SeedMe2cloudservice(Drupal7:150,000+pages)•  SeedMe2plaCorm(Drupal8:AnGcipate1M+items)

Seeking:PHPprogrammers

Desired:DeepknowledgeofDrupal8core

Page 3: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

PresentaJonOverview1.  Background&moJvaJon2.  Architecture3.  SeedMe2pla\orm

FolderShare:Virtualfilesystem»  EnJtydatamodel&accesscontrol»  Filemanagement&security»  ViewsintegraJon»  UI&Commandplugins»  Fileforma_ers»  Webservices

SmalldatamoduleandAPI–  VisualizaJon

4.  Targetusers/Usecases5.  Screenshots6.   Demo

Page 4: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SeedMe1a.k.a.StreamencodeexploreanddisseminateMyexperiments•  BasedonDrupal7•  InproducJonasPla\ormasaService(PaaS)•  Videoencodingwasthemainfocus

SeedMe2:DatasharingbuildingblocksEvoluJonoftheoriginalSeedMeproject(Completerewrite)•  BasedonDrupal8•  IncorporatesuserfeedbackfromoriginalSeedMeproject•  BuiltfordistribuJonandextension•  Datasharinganddatamanagementisthemainfocus

SeedMeProject

Page 5: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SeedMe2’sfocus

EnablerapidaccesstodataConsumabledataCanbehandledbystockwebbrowser(Upload/Download,<2GBperfile)Displayableonmanydevices(PhonetoPC)

Page 6: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Datamanagementstumblingblocks

Transfer Storage CollaboraJon AutomaJonAccesscontrol

ButwhataboutPresentaJonandDiscovery?

Page 7: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Datamanagementstumblingblocks

Transfer Storage CollaboraJon AutomaJonAccesscontrol

Issuesduetocontentdispersion

DescripJoninsomeone’smindDataintheCloud Discussiononemails

ThreeD’s:Data,DescripGon,Discussion

Page 8: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FilesystembasedsoluGons

RelatedsoluJons

ContentmanagementsystembasedsoluGonsHubZeroFigShare

MiddlewareGlobusIRodsNEWT

SoZwarerepositoriesGitHubSVNCVS

FilehosGngClouddrives(Dropbox,etc)WebDAV

ToolsSCPFTP

LimitaGonsofexisGngsoluGons Lackextensibility Lacksupportforrichcontent(descripJon,discussion,etc…) Lackindependentdevelopersupport Lack3wayinteracJonviawebbrowser&commandline&API Resourcerestricted

Page 9: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

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 10: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Users

Drupal8

Architecture

Modules•  Virtualfilesystem

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

•  Fileforma_ers•  QuickVisualizaJon

Webserver(Apache+PHP)

Database(MySQL)

Webbrowser

RESTclients

Commandline

Smalldata(PHPlibrary)

Drupal8ContributedModules

e.g.Federated

AuthenGcaGonviaOIDCmodule

ProjectcontribuJons

Page 11: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SeedMePla\ormEcosystemDrupal(ContentManagementSystem)•  Widelyusedinindustry,academiaandgovernment(thirdmostpopularCMSonwebakerWordpress&Joomla)•  Modulararchitecturewithlargeecosystem(over1,000contributedmodules)•  Largedeveloper&supportcommunity(4,000contributorstocore+thousandsmore)•  Securityadvisoryandupdatesforcoreandstablecontributed

moduleseverymonth•  VersaJledeploymentopJons(personalhosJng,insJtuJonalhosJng,cloudhosJng)

Page 12: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderSharemodule•  Requireddependencies(11-AllinDrupalcore)

–  DateJme–  Field–  File–  Image–  Link–  Media–  OpJons–  Text

•  OpGonaldependencies(3-AllinDrupalcore)–  Comment–  Help–  RESTfulwebservices

•  HTTPbasicauthenJcaJon•  SerializaJon

–  Search

–  Filter–  System–  User–  Views

•  Coremodulesrecommended–  Texteditor–  FieldUI(maybe)–  ViewsUI(maybe)

•  Contributedmodulesrecommended–  Realname–  RESTUI(maybe)–  SmallData(forquickvisualizaGonofCSV,JSONfiles)

Page 13: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderSharemodule

•  Virtualfilesystem(fieldable):–  EnJtytype&API– Accesscontrols– Usagetracking–  Views,displays,breadcrumbs,forms–  Pluginsforfieldforma_ers,search,views,acJons,andqueueworkers

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

•  Extensiblebydevelopers

Page 14: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Files&folders

•  Childrenpointtoparents– ParentIDsenablefastqueriesforallchildrenofafolder

– RootIDsenablefastqueriesforaccesscontrolsandbreadcrumbs

parenJdpointstoimmediateparent

rooJdpointstotopfolder

Page 15: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Abstractedfilestorage

FoldersexistinthedatabaseEveryuploadedfilehasaFileID(sequenGal)InternalfileorganizaJonandstoragebasedon16bitpa_ernBitpa_ern0000000000000000Physicalhierarchyas0000/0000/0000/0000/file_idEachunderlyingfolderstores9,999filesTotalfilehandling:65,535*9,999=655,284,465(~655million)

Page 16: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Accesscontrols

•  Drupalaccount-based•  Permissions+accesscontrollistontopfolders– Listofusersthatcanviewandauthor

•  TopfoldercontrolsenJrehierarchy– SimplerthandesktopOSes– Similartofilesharingservices– Fasttocheckaccess

Page 17: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Filestorage

•  Foldersonlyexistindatabase•  Filesdescribedindatabase&storedondisk

•  Diskdirectory!==folderhierarchy– Be_erforsecurityandloadbalancing– Fileshavegeneratednames

•  Avoidscharactersetandnamelengthlimits

– Fileshavenoextensions•  AvoidsaccidentalserverexecuJonof“.php”,etc.

Page 18: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Views

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

•  Integrateddesktop-likeUI– Selectfilesandfolders– Thenchoosemenucommand

•  ThreeUIvariants:– NoscripJng– ScripJngbutnoAJAX– ScripJngwithAJAX

Page 19: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Plugins

•  Fieldforma_ers– Foldernames,enJtyreferences,MIME-typeicons

•  Search–  Indexandpresentresults

•  Queueworker– Updatefolderhierarchysizesinbackground

•  AcJons&customcommands– MenuUIitemstoadd,delete,etc

Page 20: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

TotallinesofphpcodeNode:25,639(Drupalcore8.5.0)Foldershare:50,156(Alpha1version)

0

20,000

40,000

60,000

80,000

100,000

120,000

140,000

v1 v2 v3 v4 v5 alpha

Line

sofcod

e

Release

Foldersharecodemain

PHP

Docs

0

2000

4000

6000

8000

10000

12000

v1 v2 v3 v4 v5 alpha

Line

sofcod

e

Release

Foldersharecodemisc

JS

YML

CSS

TWIG

TXT

Codetrivia

Page 21: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FoldershareAPIDocumentaJon

Page 22: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SmallDataAPI&Module

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

•  Fieldforma_ers– Light-weightvisualizaJon– Lineplots,barcharts,piecharts,etc.

SmallData

Page 23: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FORADMINISTRATORS

FolderShareconfiguraGonAdminmenuStructure>FolderShare

Page 24: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonFieldsManagefields,forms&display

ConfiguraJonlocatedinadminmenuStructure>FolderShare

Page 25: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonFilesStoragelocaJon&uploadrestricJons

Page 26: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonInterfaceCommandplugins

Page 27: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonListsManagelisJngoffileandfolders

Page 28: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonSearch(opGonal)

Page 29: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonSecurityManagesharingcapabiliJes

Page 30: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareconfiguraGonWebservices(opGonal)ManageRESTcapabiliJes

Page 31: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareRESTseengsRequiresRESTUIcontributedmoduleManageRESToperaJons

Page 32: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderShareUsageAdminmenuReports>FolderShareusage

Page 33: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FolderSharepermissions

Page 34: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

FORUSERS

Page 35: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Topfoldersownedbyyou

Topfolderssharedwithyou

Publictopfolders

Menu

Theselistsdisplaytoplevelfolders

FoldersmayhaveadescripJon

Page 36: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

MenuopJons–withnoselecJon

Page 37: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

MenuopJons–withselecJon

Page 38: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Sharingformtorestrictaccess

Page 39: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SortablelisJngoffilesandfolders.

Differentusers

Page 40: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Breadcrumbsshowspath

Page 41: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

EveryfolderandfilemayaddadescripJon.(Forma_edtextfieldakaBodyfieldinDrupal’sNode)

Page 42: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

AddcustomsfieldssuchasCommentstoFolderShare.

TheFolderShareenGtyisfieldable.

Page 43: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

MenuopJonschangeonselecJon

Page 44: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

ViewsubfolderBreadcrumbsshowspath

Page 45: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

VisualizaJonscanbeswitchedinteracJvelytodifferentcharttypes

QuickvisualizaJonofCSV&JSONfiles

Page 46: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

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

help

Page 47: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SamplecommandlineinteracJonfoldershare --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 48: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

SeedMe2–Targetusers/Usecases•  Researchers

–  CollaboraJonhuborpersonaldashboard•  Projectrepositories

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

–  IntegrateyourscienJficapplicaJon•  Sciencegateways

–  Datasharing–  Datapublishing–  Dataescrowservice

•  CyberInfrastructureproviders–  OfferSeedMepla\ormtoyouruserbase/communiJes

Page 49: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Realusagebyphysicists

Page 50: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Deployment/serviceopJonsDIY-Runowninstance(Yourbranding+yourdomain)•  Onyourownhardware•  CondohardwareProvider/vendorrunsaninstance•  YourinsJtuJon•  CIcenters•  Commercialvendors

Asacloudservice(Ourbranding&ourdomain)•  dibbs.seedme.org

Page 51: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Explorerswelcome(webbrowserneeded)Trialwebsite:sandbox.seedme.org

Tryityourself!

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

Page 52: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Team

AmitChourasia,DavidNadeau,DmitryMishin&MichaelNormanSanDiegoSupercomputerCenter|UniversityofCaliforniaSanDiego

SeedMe

AcknowledgementsAllusersandapplicaJonintegratorsfortheirvaluablefeedback

NaGonalScienceFoundaGon

ThismaterialisbaseduponworksupportedbytheNaJonalScienceFoundaJonunderGrantNo.ACI-1235505andACI-1443083

"Anyopinions,findings,andconclusionsorrecommendaJonsexpressedinthismaterialarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheNaJonalScienceFoundaJon."

Page 53: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

DEMO

Page 54: FolderShare: Building a data sharing cloud on Drupal 8 for … · 2018. 4. 13. · FolderShare: Building a data sharing cloud on Drupal 8 for researchers About me ... (third most

Talk to usamit sdsc.edu

•  Keen to learn about potential FolderShare uses cases in your work•  Seeking: PHP programmers Desired: Deep knowledge of Drupal 8 core •  Single sign-on: Checkout http://www.cilogon.org/drupal

Projectcode: dibbs.seedme.org/downloads

or

drupal.org/projects/foldershare

drupal.org/projects/smalldata

Trialwebsite: sandbox.seedme.org

Projectwebsite:dibbs.seedme.org