sakai - opensource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd party code 0 7.5...

20
Sakai - OpenSource consumer. How Sakai works with Open Source projects Dr Ian Boston CTO, Caret, University of Cambridge Sakai3 lead Apache Shindig PPMC Member Apache Sling PMC Member

Upload: others

Post on 26-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Sakai - OpenSource consumer.

How Sakai works with Open Source projects

Dr Ian BostonCTO, Caret, University of Cambridge

Sakai3 leadApache Shindig PPMC Member

Apache Sling PMC Member

Page 2: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

What is Sakai ?

CommunityDevelopersEducatorsResearchers

Higher EdProduction VLE/VREGlobal, 161 installations

Scalable, 100 - 200K users

Open SourceSakai Foundation (501c)ECL2 (Apache2 like)90% Java

50 - 60 core committers

Page 3: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

History

2004 2009

v1.0 v2.6v1.5 v2.0 v2.4

1.8m loc

Page 4: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Libraries and IP

GovernanceLicense Clearance

Committer ClearanceCCLA

CLALibrary Selection

v2 Libraries

SpringHibernateApache CommonsApache Tomcat

Page 5: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Lessons for V2

Code is not the only thing that matters

Someone else has probably written a better implementation already

Great CodeBad Community

Bad CodeGreat Community

Page 6: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Sakai 3

Only own what we have to

Write less, keep it simple

Select on community, license then code

Engage, contribute, influence

Page 7: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

OpenSocialCampfire Announcement 11/2007

1,000s of DevelopersApp PortabilityFantastic UX

800M users315M app installs

1st Birthday 05/2009

Page 8: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Sakai Early 2008

Achademic Social Networking

Institutional Technical

Federation/Integration

Gen Y/Z

Web NGUX Driven

App Community

Page 9: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Apache ShindigOpenSocial RI Incubator

Code donated to the IncubatorGrowing Community

Mainly Google

In production

No ContainerUnclear SPI

Page 10: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Engage

Read and UnderstandAsk questions, listenPatch, bug fix

Trust Read and UnderstandAsk questions, listen

Patch, bug fix

Commit to taking eternal responsibility for every line of code you commit.

Page 11: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Community Frustrations

“The code is ugly an broken, I wouldn't do it like that”

“It doesn't address my use cases”

“My patches keep breaking and they won’t take them.”

explain, educate, help, support, joke, show humility, no

arrogance, present evidence

Page 12: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Committer Pain

“I don’t have time to read 10 paragraphs and try and work out what is being said”

“I have a life, I volunteered”

“Not that question yet again”

“I cant take responsibility for THAT! (WTF)”

explain, educate, help, support, joke, show humility, no

arrogance, present evidence

Page 13: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Apache Invitation

• Trust builds, volume of patches, contributions

• Private PMC Vote or PPMC + IPMC

• Invite, Accept

• Legals

• Commit access

Page 14: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

What then.

• Commit what you like - No

• Nothing changes except your name appears on “svn blame” - Yes

• When the build breaks at the weekend... you feel like you should fix it - Yes

Page 15: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Apache SlingEnterprise Content Management

Web app framework

The name "Sling" has been proposed by Roy Fielding who explained it like this:

[The name is] Biblical in nature. The story of David: the weapon he uses to slay the giant Goliath is a sling. Hence, our David's [David Nuescheler, CTO of Day Software] favorite weapon.

Page 16: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Educational Content Management

50% Enterprise Content Management Use Cases50% Educational Use Cases

everyone is an editorgroups

educational apps integration

Sakai 3

50% Sling50% Sakai

UI/UX

Page 17: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Code base

0

500,000

1,000,000

1,500,000

2,000,000

Sakai 2.6 K1 K2

Sakai Code3rd Party Code

0

7.5

15.0

22.5

30.0

2.6 K1 K2

Build Time (min)

0

125

250

375

500

2.6 K1 K2

Modules

Page 18: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Code Coverage

0

22.5

45.0

67.5

90.0

Sakai 2.6 K1 K2 Apache Code

Unit Test CoverageAutomated Test CoverageManual Test

?

Page 19: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Resource Usage

0

500

1,000

1,500

2,000

Sakai 2.6 Sakai3

Minimum Requirements

Perm Space StartupWorking Cache

0

500

1,000

1,500

2,000

Sakai 2.6 Sakai3

2G Limit

Page 20: Sakai - OpenSource consumer.oss-watch.ac.uk/events/2009-10-09/ib_slideware.pdf3rd Party Code 0 7.5 15.0 22.5 30.0 2.6 K1 K2 Build Time (min) 0 125 250 375 500 2.6 K1 K2 Modules. Code

Architecture

logging

Http

config

authn authz JPA

locking cache

personal public presence

resource

event

messaging searchfriends

JR-API

json mime

cron engine httpauth

openid formauth

JR-access JR-user webdav

servlets resolver scripting

Ruby Python

ESPJR-Client Scala

Shindig

Apache Jackrabbit

OSGi/ Apache Felix

JMS

Email

SMS

XMPP

IMAP

POP3

VersionManager

PersistenceManager

IMS CC ICOM Rules Workflow

IMS LIS

LDAP

HTTP REST + JSON

Caldav