FolderShare: Building a data sharing cloud on Drupal 8 for ... · • Project website ( Drupal 5 : 50,000+ pages) • SeedMe2 cloud service ( Drupal 7: 150,000+ pages) • SeedMe2

Post on 12-Sep-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

AmitChourasia,DavidNadeau&MichaelNormanSanDiegoSupercomputerCenter,UCSanDiego

Projectwebsite:dibbs.seedme.org

Projectcode:dibbs.seedme.org/downloads

Trialwebsite:sandbox.seedme.org

FolderShare:BuildingadatasharingcloudonDrupal8forresearchers

Aboutme•  VisualizaKonscholar/evangelist•  Lecturer/Instructor•  Interests

–  HighperformancecompuKng–  Datastewardship–  Computergraphics

SanDiegoSupercomputerCenter@UCSanDiegoDrupalusersince~2006|version4.7.4•  Personalwebsite(Drupal4-8:150pages)•  Projectwebsite(Drupal5:50,000+pages)•  SeedMe2cloudservice(Drupal7:150,000+pages)•  SeedMe2pla@orm(Drupal8:AnEcipate1M+items)

Seeking:VeryproficientDrupal8PHPprogrammers

Desired:DeepknowledgeofDrupal8core

PresentaKonOverview1.  Background&moKvaKon2.  Architecture3.  SeedMe2pla\orm

FolderShare:Virtualfilesystem»  EnKtydatamodel&accesscontrol»  Filemanagement&security»  ViewsintegraKon»  UI&Commandplugins»  Fileforma_ers»  Webservices

SmalldatamoduleandAPI–  VisualizaKon

4.  Targetusers/Usecases5.  Screenshots6.   Demo

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

SeedMe2:DatasharingbuildingblocksEvoluKonoftheoriginalSeedMeproject(Completerewrite)•  BasedonDrupal8•  IncorporatesuserfeedbackfromoriginalSeedMeproject•  BuiltfordistribuKonandextension•  Datasharinganddatamanagementisthemainfocus

SeedMeProject

SeedMe2’sfocus

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

Datamanagementstumblingblocks

Transfer Storage CollaboraKon AutomaKonAccesscontrol

PresentaKonDiscovery

ByLexiLarson

Datamanagementstumblingblocks

Transfer Storage CollaboraKon AutomaKonAccesscontrol

Issuesduetocontentdispersion

DescripKoninsomeone’smindDataintheCloud Discussiononemails

ThreeD’s:Data,DescripEon,Discussion

FilesystembasedsoluEons

RelatedsoluKons

ContentmanagementsystembasedsoluEonsHubZeroFigShare

MiddlewareGlobusIRodsNEWT

SoYwarerepositoriesGitHubSVNCVS

FilehosEngClouddrives(Dropbox,etc)WebDAV

ToolsSCPFTP

LimitaEonsofexisEngsoluEons Lackextensibility Lacksupportforrichcontent(descripKon,discussion,etc…) Lackindependentdevelopersupport Lack3wayinteracKonviawebbrowser&commandline&API Resourcerestricted

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

Users

Drupal8

Architecture

Modules•  Virtualfilesystem

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

•  Fileforma_ers•  QuickVisualizaKon

Webserver(Apache+PHP)

Database(MySQL)

Webbrowser

RESTclients

Commandline

Smalldata(PHPlibrary)

Drupal8ContributedModules

e.g.Federated

AuthenEcaEonviaOIDCmodule

ProjectcontribuKons

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

moduleseverymonth•  VersaKledeploymentopKons(personalhosKng,insKtuKonalhosKng,cloudhosKng)

FolderSharemodule•  Requireddependencies(12-AllinDrupalcore)

–  DateKme–  Field–  File–  Image–  Link–  Media–  OpKons–  Text

•  OpEonaldependencies(3-AllinDrupalcore)–  Comment–  RESTfulwebservices

•  HTTPbasicauthenKcaKon•  SerializaKon

–  Search

–  Help–  Filter–  System–  User–  Views

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

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

FolderSharemodule

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

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

•  Extensiblebydevelopers

Files&folders

•  Childrenpointtoparents– ParentIDsenablefastqueriesforallchildrenofafolder

– RootIDsenablefastqueriesforaccesscontrolsandbreadcrumbs

parenKdpointstoimmediateparent

rooKdpointstotopfolder

AbstractedphysicalstorageFoldersexistinthedatabaseEveryuploadedfilehasaFileID(sequenEal)FileIDsay1Bitpa_ern0000000000000001Storedas0000/0000/0000/0001FileIDsay100Bitpa_ern0000000001100100Storedas0000/0000/0110/0100

Accesscontrols

•  Drupalaccount-based•  Permissions+accesscontrollistontopfolders– Listofusersthatcanviewandauthor

•  TopfoldercontrolsenKrehierarchy– SimplerthandesktopOSes– Similartofilesharingservices– Fasttocheckaccess

Filestorage

•  Foldersonlyexistindatabase•  Filesdescribedindatabase&storedondisk

•  Diskdirectory!==folderhierarchy– Be_erforsecurityandloadbalancing– Fileshavegeneratednames

•  Avoidscharactersetandnamelengthlimits

– Fileshavenoextensions•  AvoidsaccidentalserverexecuKonof“.php”,etc.

Views

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

•  Integrateddesktop-likeUI– Selectfilesandfolders– Thenchoosemenucommand

•  ThreeUIvariants:– NoscripKng– ScripKngbutnoAJAX– ScripKngwithAJAX

Plugins

•  Fieldforma_ers– Foldernames,enKtyreferences,MIME-typeicons

•  Search–  Indexandpresentresults

•  Queueworker– Updatefolderhierarchysizesinbackground

•  AcKons&customcommands– MenuUIitemstoadd,delete,etc

TotallinesofphpcodeNode: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

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

FoldershareAPIDocumentaKon

SmallDataAPI&Module

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

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

SmallData

FORADMINISTRATORS

FolderShareconfiguraEonAdminmenuStructure>FolderShare

FolderShareconfiguraEonFieldsManagefields,forms&display

ConfiguraKonlocatedinadminmenuStructure>FolderShare

FolderShareconfiguraEonFilesStoragelocaKon&uploadrestricKons

FolderShareconfiguraEonInterfaceCommandplugins

FolderShareconfiguraEonListsManagelisKngoffileandfolders

FolderShareconfiguraEonSearch(opEonal)

FolderShareconfiguraEonSecurityManagesharingcapabiliKes

FolderShareconfiguraEonWebservices(opEonal)ManageRESTcapabiliKes

FolderShareRESTseengsRequiresRESTUIcontributedmoduleManageRESToperaKons

FolderShareUsageAdminmenuReports>FolderShareusage

FolderSharepermissions

FORUSERS

Topfoldersownedbyyou

Topfolderssharedwithyou

Publictopfolders

Menu

Theselistsdisplaytoplevelfolders

FoldersmayhaveadescripKon

MenuopKons–withnoselecKon

MenuopKons–withselecKon

Sharingformtorestrictaccess

SortablelisKngoffilesandfolders.

Differentusers

Breadcrumbsshowspath

EveryfolderandfilemayaddadescripKon.(Forma_edtextfieldakaBodyfieldinDrupal’sNode)

AddcustomsfieldssuchasCommentstoFolderShare.

TheFolderShareenEtyisfieldable.

MenuopKonschangeonselecKon

ViewsubfolderBreadcrumbsshowspath

VisualizaKonscanbeswitchedinteracKvelytodifferentcharttypes

QuickvisualizaKonofCSV&JSONfiles

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

help

SamplecommandlineinteracKonfoldershare --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”

SeedMe2–Targetusers/Usecases•  Researchers

–  CollaboraKonhuborpersonaldashboard•  Projectrepositories

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

–  IntegrateyourscienKficapplicaKon•  Sciencegateways

–  Datasharing–  Datapublishing–  Dataescrowservice

•  CyberInfrastructureproviders–  OfferSeedMepla\ormtoyouruserbase/communiKes

Realusagebyphysicists

Deployment/serviceopKonsDIY-Runowninstance(Yourbranding+yourdomain)•  Onyourownhardware•  CondohardwareProvider/vendorrunsaninstance•  YourinsKtuKon•  CIcenters•  Commercialvendors

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

Explorerswelcome(webbrowserneeded)Trialwebsite:sandbox.seedme.org

Tryityourself!

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

Team

AmitChourasia,DavidNadeau,DmitryMishin&MichaelNormanSanDiegoSupercomputerCenter|UniversityofCaliforniaSanDiego

SeedMe

AcknowledgementsAllusersandapplicaKonintegratorsfortheirvaluablefeedback

NaEonalScienceFoundaEon

ThismaterialisbaseduponworksupportedbytheNaKonalScienceFoundaKonunderGrantNo.ACI-1235505andACI-1443083

"Anyopinions,findings,andconclusionsorrecommendaKonsexpressedinthismaterialarethoseoftheauthor(s)anddonotnecessarilyreflecttheviewsoftheNaKonalScienceFoundaKon."

Talk to usamit sdsc.edu

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

Projectwebsite:dibbs.seedme.org

Trialwebsite:sandbox.seedme.org

MyquesEons1.  Howtodoaccesscontrolcheckonimagestyles?2.  HowtosavestateinformaKonincustomDrupalfileforma_ers?

top related