20
JAFER Project JAFER Project Creating an Open Source Creating an Open Source Z39.50 Toolkit Z39.50 Toolkit Matthew J. Dovey Matthew J. Dovey Oxford University Oxford University

JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Embed Size (px)

Citation preview

Page 1: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

JAFER ProjectJAFER ProjectCreating an Open Source Creating an Open Source

Z39.50 ToolkitZ39.50 Toolkit

Matthew J. DoveyMatthew J. Dovey

Oxford UniversityOxford University

Page 2: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

JAFER ProjectJAFER Project

• Create an “easy” to use toolkitCreate an “easy” to use toolkit

• Access to Z39.50 resourcesAccess to Z39.50 resources

• Publish resources as Z39.50Publish resources as Z39.50

• DemoDemo

• Java basedJava based– Becoming a popular languageBecoming a popular language

• Open SourceOpen Source– Exit strategy for sustainabilityExit strategy for sustainability

Page 3: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Source ForgeSource Forge

• Created a SourceForge siteCreated a SourceForge site– DisseminationDissemination– Provides bug and feature tracking Provides bug and feature tracking

functionalityfunctionality– Provides a repository of the software Provides a repository of the software

after the projectafter the project– Provides an infrastructure for others to Provides an infrastructure for others to

develop the software after the projectdevelop the software after the project

Page 4: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University
Page 5: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Hurdle 1 - LicensingHurdle 1 - Licensing• Academic Free License Academic Free License • Apache Software License Apache Software License • Apple Public Source License Apple Public Source License • Artistic license Artistic license • Attribution Assurance Licenses Attribution Assurance Licenses • BSD license BSD license • Common Public License Common Public License • Eiffel Forum License Eiffel Forum License • Eiffel Forum License V2.0 Eiffel Forum License V2.0 • Entessa Public License Entessa Public License • GNU General Public License (GPL) GNU General Public License (GPL) • GNU Library or "Lesser" General Public License GNU Library or "Lesser" General Public License

(LGPL) (LGPL) • Lucent Public License (Plan9) Lucent Public License (Plan9) • IBM Public License IBM Public License • Intel Open Source License Intel Open Source License • Historical Permission Notice and Disclaimer Historical Permission Notice and Disclaimer • Jabber Open Source License Jabber Open Source License • MIT license MIT license • MITRE Collaborative Virtual Workspace License MITRE Collaborative Virtual Workspace License

(CVW License) (CVW License) • Motosoto License Motosoto License • Mozilla Public License 1.0 (MPL) Mozilla Public License 1.0 (MPL) • Mozilla Public License 1.1 (MPL)Mozilla Public License 1.1 (MPL)• Naumen Public License Naumen Public License • Nethack General Public License Nethack General Public License • Nokia Open Source License Nokia Open Source License • OCLC Research Public License 2.0 OCLC Research Public License 2.0 • Open Group Test Suite License Open Group Test Suite License • Open Software License Open Software License • Python license (CNRI Python License) Python license (CNRI Python License) • Python Software Foundation License Python Software Foundation License • Qt Public License (QPL) Qt Public License (QPL)

• RealNetworks Public Source License V1.0 RealNetworks Public Source License V1.0 • Reciprocal Public License Reciprocal Public License • Ricoh Source Code Public License Ricoh Source Code Public License • Sleepycat License Sleepycat License • Sun Industry Standards Source License (SISSL) Sun Industry Standards Source License (SISSL) • Sun Public License Sun Public License • Sybase Open Watcom Public License 1.0 Sybase Open Watcom Public License 1.0 • University of Illinois/NCSA Open Source License University of Illinois/NCSA Open Source License • Vovida Software LicNaumen Public License Vovida Software LicNaumen Public License • Nethack General Public License Nethack General Public License • Nokia Open Source License Nokia Open Source License • OCLC Research Public License 2.0 OCLC Research Public License 2.0 • Open Group Test Suite License Open Group Test Suite License • Open Software License Open Software License • Python license (CNRI Python License) Python license (CNRI Python License) • Python Software Foundation License Python Software Foundation License • Qt Public License (QPL) Qt Public License (QPL) • RealNetworks Public Source License V1.0 RealNetworks Public Source License V1.0 • Reciprocal Public License Reciprocal Public License • Ricoh Source Code Public License Ricoh Source Code Public License • Sleepycat License Sleepycat License • Sun Industry Standards Source License (SISSL) Sun Industry Standards Source License (SISSL) • Sun Public License Sun Public License • Sybase Open Watcom Public License v. 1.0Sybase Open Watcom Public License v. 1.0• University of Illinois/NCSA Open Source License University of Illinois/NCSA Open Source License • Vovida Software License v. 1.0 Vovida Software License v. 1.0 • W3C License W3C License • wxWindows Library License wxWindows Library License • X.Net License X.Net License • Zope Public License Zope Public License • zlib/libpng license zlib/libpng license

Page 6: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Licensing – 2Licensing – 2

• OSI list of approved licenses is long.OSI list of approved licenses is long.

• Some are specific to companies (e.g. Some are specific to companies (e.g. Sun), Universities, Organizations (e.g. Sun), Universities, Organizations (e.g. Apache), projects (e.g Mozilla) or Apache), projects (e.g Mozilla) or platforms.platforms.

• We asked JISC what they recommended We asked JISC what they recommended (or whether there was a JISC specific one)(or whether there was a JISC specific one)– They asked us to let us know what we chose!They asked us to let us know what we chose!

Page 7: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Licensing - 3Licensing - 3

• Most licenses followed similar formMost licenses followed similar form– Required that notice of authorship be retained in Required that notice of authorship be retained in

any derivative worksany derivative works– Limited responsibility of software failureLimited responsibility of software failure

• GPU/LGPU Seemed most popularGPU/LGPU Seemed most popular– GPU: derivatives must also be OpenSourceGPU: derivatives must also be OpenSource– LGPU: derivatives may not necessarily be LGPU: derivatives may not necessarily be

OpenSourceOpenSource

• Chose LGPUChose LGPU– Toolkit projectToolkit project– Wanted to encourage useWanted to encourage use

Page 8: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Issues: Code PublishingIssues: Code Publishing

• Published code at recognised milestonesPublished code at recognised milestones– Very aware of code qualityVery aware of code quality– Tended to delay publishing code until we had tidied the codeTended to delay publishing code until we had tidied the code

• Frequent refactoringFrequent refactoring– New versions of published code could differ widelyNew versions of published code could differ widely– [Not alone – problem of building UDDI/Z39.50 gateway when [Not alone – problem of building UDDI/Z39.50 gateway when

both toolkits changed rapidly]both toolkits changed rapidly]

• Problem of balancing dedicated programmers with Problem of balancing dedicated programmers with building a community of programmersbuilding a community of programmers– [Not alone – many open source projects have closed [Not alone – many open source projects have closed

development – at least during initial phases]development – at least during initial phases]

Page 9: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Sustainability after the Sustainability after the projectproject• Building a communityBuilding a community

– Have a number of users of the toolkitHave a number of users of the toolkit– Some have submitted code and bugfixes Some have submitted code and bugfixes

(informally)(informally)

• Following coat-tailsFollowing coat-tails– Developed tools for uPortal, Cocoon, DSpace, etc.Developed tools for uPortal, Cocoon, DSpace, etc.

• Uncharted watersUncharted waters

Page 10: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Open Source versus Open Open Source versus Open StandardsStandards

Page 11: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Open Source and Open Open Source and Open StandardsStandards• Project said it needed Open Source since Project said it needed Open Source since

this meant:this meant:– ReliableReliable– AffordableAffordable– OpenOpen– Widely UsedWidely Used– Supported by different vendors and Supported by different vendors and

development tools (avoid lock in)development tools (avoid lock in)

• Solution: OpenSource? Solution: OpenSource? • Or OpenStandards?Or OpenStandards?

Page 12: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

IssuesIssues

• ReliableReliable– Sometime available source excuse for lack of support (you can fix it yourself)Sometime available source excuse for lack of support (you can fix it yourself)– Good software should be reliable (regardless of OpenSource or not)Good software should be reliable (regardless of OpenSource or not)

• AffordableAffordable– OpenSource may be free but may have high cost of maintenanceOpenSource may be free but may have high cost of maintenance– Swings and roundaboutsSwings and roundabouts– But vendors should be reminded to be competitive!But vendors should be reminded to be competitive!

• OpenOpen– OpenSource does not imply Open Code/Open StandardsOpenSource does not imply Open Code/Open Standards

• Widely UsedWidely Used– Some OpenSource projects never get off the ground. Others fade into Some OpenSource projects never get off the ground. Others fade into

obscurity.obscurity.– Some of the most successful have commercial businesses behind them Some of the most successful have commercial businesses behind them

(either spin-offs or existing industry)(either spin-offs or existing industry)• Supported by different vendors and development tools (avoid lock in)Supported by different vendors and development tools (avoid lock in)

– OpenSource does not imply Open Code/Open Standards/Common StandardsOpenSource does not imply Open Code/Open Standards/Common Standards– OpenSource sometimes adopted by industry as cynical attempt to thwart OpenSource sometimes adopted by industry as cynical attempt to thwart

competitioncompetition

Page 13: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Example 1 – OpenSource Example 1 – OpenSource PortalPortal

Web page

SSL

XML

Formated HTML/WML

XSLT

CSS/Skin

User Generated Events (from link clicks)

Select XSLT based on browser etc.

Local Java class or remote SOAPWebService

Page 14: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Portal Framework - Portal Framework - ProblemsProblems• Portal Java API – non StandardPortal Java API – non Standard

– Reason: Java API not finalised when portal Reason: Java API not finalised when portal under developmentunder development

• WebService API – non StandardWebService API – non Standard– Reason: WSRP not finalised when portal under Reason: WSRP not finalised when portal under

developmentdevelopment

• In defense, Portal developers committed to In defense, Portal developers committed to adopting Java and WebService portal adopting Java and WebService portal standards when the standards are finalizedstandards when the standards are finalized

Page 15: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Portal - ConsequencesPortal - Consequences

• Channel development in Open Source portal Channel development in Open Source portal framework difficult/expensive to port to framework difficult/expensive to port to other portal frameworksother portal frameworks– Requires substantive redevelopmentRequires substantive redevelopment

• ““Lock in” applies to Open Source Lock in” applies to Open Source implementations as to commercial/blackboximplementations as to commercial/blackbox

• One solution – use Web Proxy channels to One solution – use Web Proxy channels to dedicated web applicationsdedicated web applications– Solution to lock in – independent of Open SourceSolution to lock in – independent of Open Source

Page 16: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Example 2 – OpenSource Example 2 – OpenSource VLEVLE

Template withembedded script

Java class library ofextension functions

Persistent archive ofinstance data

JSPTag Library

Persistent JavaBeans

OpenStandards:

J2EE

All Interfaces Proprietary

Page 17: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

OpenSource VLEOpenSource VLE

• Similar reasonsSimilar reasons– J2EE standards not available at original J2EE standards not available at original

development timedevelopment time

• Similar consequencesSimilar consequences– Resources developed with the VLE Resources developed with the VLE

difficult to port – requires redevelopmentdifficult to port – requires redevelopment

• Rebuilding the VLE to accommodate Rebuilding the VLE to accommodate Open Standards will be expensiveOpen Standards will be expensive

Page 18: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

What is a “Standard”What is a “Standard”

• De facto “standards”De facto “standards”– MS WordMS Word

• Published de facto standardsPublished de facto standards– RTF (just)RTF (just)– PDFPDF– OpenOfficeOpenOffice

• Commercially owned standardsCommercially owned standards– J2EEJ2EE– .Net.Net

• Standard body approved standardsStandard body approved standards

Page 19: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

Standards BodiesStandards Bodies

• ISOISO– Very slow to standardise, very slow to see Very slow to standardise, very slow to see

implementationsimplementations• NISONISO

– Not quite as slow as ISONot quite as slow as ISO– Emphasis is library related standardsEmphasis is library related standards

• W3CW3C– Fairly rapidFairly rapid– Recommendations – not standardsRecommendations – not standards

• OASISOASIS– Acts as a regulator for merging de facto standards into an Acts as a regulator for merging de facto standards into an

Open standardOpen standard– Needs reference implementations (some are often Open Needs reference implementations (some are often Open

Source)Source)

Page 20: JAFER Project Creating an Open Source Z39.50 Toolkit Matthew J. Dovey Oxford University

IPR, Patents etc.IPR, Patents etc.

• IPR Patents becoming a big issue for Open IPR Patents becoming a big issue for Open Standards and Open SourceStandards and Open Source– EU developments to allow patents of softwareEU developments to allow patents of software– ““Silly” Software patents (Microsoft on validation Silly” Software patents (Microsoft on validation

using relational tables; Oracle on Web Service using relational tables; Oracle on Web Service Registries)Registries)

• W3C OASIS etc. have IPR policiesW3C OASIS etc. have IPR policies– RAND – Reasonable and Non-Discriminatory RAND – Reasonable and Non-Discriminatory

TermsTerms– RF – Royalty-FreeRF – Royalty-Free

• Ironically more supportive of Open Ironically more supportive of Open Standards than Open SourceStandards than Open Source