OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source...

28
Intoduction FLOSS development issues OSLC Interoperability Conclusion OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools Olivier Berger <[email protected]>, Télécom SudParis Wednesday 2011/11/30 ICSSEA 2011 Olivier Berger <[email protected]>, Télécom SudParis OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

description

 

Transcript of OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source...

Page 1: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

OSLC (Open Services for Lifecycle Collaboration):open standard for interoperability of open source

ALM tools

Olivier Berger <[email protected]>,Télécom SudParis

Wednesday 2011/11/30ICSSEA 2011

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 2: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Quick Introduction

Plan

FLOSS development issuesOSLC StandardInteroperability of development tools

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 3: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Quick Introduction

Short bio

Télécom SudParishttp://www.telecom-sudparis.eu/Higher education school in Évry (France), sister of TelecomParistech, also member of Institut Telecom.

Olivier BERGER<[email protected]>Research Engineer at TELECOM SudParis, expert on softwaredevelopment forges, and interoperability in the libre softwaredevelopment projects.

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 4: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Research interest

Large scale bug-tracking

Lots of duplicate or related bug reports

Not a single place where to monitor bugs

OK, launchpad, maybe. . . too much a silo anyway

No interoperability of tools

Manual work of maintainer / QA (bug triaging, etc.)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 5: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Research interest

FLOSS distributions ecosystem

Source : http ://git.upsilon.cc/r/talks/20110224-evry.git

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 6: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Research interest

Bugtracker interoperability prerequisite

No existing standard for bugtracker APIs

. . . until OSLC-CM (2009-)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 7: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Quick introduction to OSLC

Open Services for Lifecycle Collaboration :Lifecycle integration inspired by the Web

The Open Services for Lifecycle Collaboration (OSLC)community is working to standardize the way that softwarelifecycle tools can share data (for example, requirements,defects, test cases, plans, or code) with one another.

Website :http://open-services.net/

Open Source License Checker / OurSavior Lutheran Church

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 8: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Showtime ! (nice IBM propaganda)

http://www.youtube.com/watch?v=B2vqL8fujgE

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 9: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

OSLC Community

Open Community

Lead : IBM/Rational

Specs elaborated in a Wiki

Eclipse Lyo Open Sourceproject :http://www.eclipse.org/lyo/

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 10: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Specifications : interoperability «standard»

Open Standardpatent non-assert covenant signed by all contributorsspecifications under Creative Commonsvarious domains (ALM, PLM)

OSLC-CM (Change Management)More domains, but haven’t participated myself

Technologybased on the Web’s tech standards : REST, RDF, AJAX,Dublin Coregoing from the LAN to the Web (>= 2.0, Linked Data)pragmatic approach

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 11: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Specification effort progress

V2 specs finalized for many domains

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 12: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Change Management Domain

OSLC Corehttp://open-services.net/bin/view/Main/OslcCore

OSLC-CM : Change Management (bug trackers, etc.)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 13: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Semantic + extendable exchange format : RDF

Example (XML)<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dcterms="http://purl.org/dc/terms/"xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:oslc_blog="http://open-services.net/ns/bogus/blogs#">

<oslc_blog:Entryrdf:about="http://example.com/blogs/entry/1">

<dcterms:title>I love trash</dcterms:title><dcterms:modified>2002-10-10T12:00:00-05:00</dcterms:modified><dcterms:content>

Anything dirty or dingy or dusty.Anything ragged or rotten or rusty.

</dcterms:content><dcterms:creator>

<foaf:Person><foaf:name>Oscar T. Grouch</foaf:name>

</foaf:Person></dcterms:creator>

</oslc_blog:Entry></rdf:RDF>

Example (JSON){

"prefixes" : {"oslc": "http://open-services.net/ns/core#","rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#","foaf" : "http://http://xmlns.com/foaf/0.1/","dcterms" : "http://purl.org/dc/terms/"

},"rdf:type" : { "rdf:resource" : "http://open-services.net/ns/bogus/blogs#Entry" },"rdf:about" : "http://example.com/blogs/entry/1","dcterms:title" : "I love trash","dcterms:modified" : "2002-10-10T12:00:00-05:00","dcterms:content" : "Anything dirty or dingy or dusty. \\nAnything ragged or rotten or rusty.","dcterms:creator" : {

"foaf:name" : "Oscar T. Grouch"},

}

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 14: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Meta model entities for Web Services (discovery)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 15: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

REST APIs

classical REST C,R,U,D operationsCreate (POST)Retrieve (GET)Update (PUT)Delete (DEL)

Integration / interop oriented APIsresource IDs == URLs (RDF, Linked Data)minimal REST APIs + extensions for each product’s featuresdelegated dialogues -> AJAX scenariiresource preview,OAuthetc.

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 16: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Example bugzilla report (through Eclipse Lyo adapter)$ rapper -o turtle http://localhost:8282/bugz/changerequest?id=1

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix dcterms: <http://purl.org/dc/terms/> .@prefix oslc: <http://open-services.net/ns/core#> .@prefix oslc_cm: <http://open-services.net/ns/cm#> .@prefix bugz: <http://www.bugzilla.org/rdf#> .@prefix foaf: <http://http://xmlns.com/foaf/0.1/> .

<http://localhost:8282/bugz/changerequest?id=1>oslc_cm:status "NEW" ;dcterms:contributor [

foaf:name "[email protected]" ;a foaf:Person

] ;dcterms:created "Fri May 20 17:36:00 CEST 2011" ;dcterms:identifier "1" ;dcterms:modified "Fri May 20 17:36:56 CEST 2011" ;dcterms:title "coin" ;bugz:component "TestComponent" ;bugz:opsys "Linux" ;bugz:platform "PC" ;bugz:priority "P3" ;bugz:product "TestProduct" ;bugz:version "unspecified" ;a oslc_cm:ChangeRequest .

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 17: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

Service catalog’s operations

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 18: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Open Services for Lifecycle Collaboration

AJAX Mashups (delegated dialogs)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 19: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Software development tools integration issues

Lots of different (legacy) systems in respective silos

Integrated suitesOpen Source tools or Proprietary Software alikeSoftware development forges

Agile methodologies vs. monolithic suites

Traceability

Scalability

Very poor interoperabilitySyntacticSemantic

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 20: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Integration with silos

Tools are “natively” integrated in isolated suites

Ad-hoc interfaces : no standardization

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 21: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

New integration model

linked lifecycle data

Source : IBM/Rational

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 22: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Exemple : OSLC Compact preview of FusionForge users

Resources linking and preview through standardized mechanism forURIs + AJAX preview

http://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/OslcCompactPreviewTooltips

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 23: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Generic preview through HTTP content-negociation

$ curl -H ’Accept: application/x-oslc-compact+xml’ http://fftrunk/users/labbenes

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dcterms="http://purl.org/dc/terms/"xmlns:oslc="http://open-services.net/ns/core#">

<oslc:Compact rdf:about="https://fftrunk/plugins/oslc/compact/user/labbenes"><dcterms:title>M. Sabri LABBENE</dcterms:title><oslc:shortTitle>labbenes</oslc:shortTitle><oslc:smallPreview>

<oslc:Preview><oslc:document rdf:ressource="https://fftrunk/plugins/oslc/compact/user/labbenes/type/small"/><oslc:hintWidth>500px</oslc:hintWidth><oslc:hintHeight>150px</oslc:hintHeight>

</oslc:Preview></oslc:smallPreview>

</oslc:Compact></rdf:RDF>

Specs : http://open-services.net/bin/view/Main/OslcCoreUiPreview

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 24: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Continuous integration : FusionForge + JenkinsCI

Jenkins (ex Hudson) as OSLC-CM ConsumerCan create bug reports in case of failed builds/tests on distantbugtrackerWe have developped an Open Source plugin for Jenkins (Java,Javascript mashup, OSLC-CM plugin published on GiHub)

FusionForge Trackers as OSLC-CM ProviderHandles the bug reports DB, and exhibits an OSLC-CMcompatible REST APIDelegates authentication to consumers on behalf of real forgeusers, through OAuthWe have developed an Open Source plugin (PHP + ZendFramework, published on FusionForge’s SVN)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 25: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Demo : FusionForge + jenkins

Demo : http://vimeo.com/23480321

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 26: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Tools integration and interoperability

Deployments ?

ProprietaryIBM/Rational : Jazz, RTC,. . .Tasktop Sync. . .

FLOSSFusionForge trackersBugzilla (through Eclipse Lyo : http ://eclipse.org/lyo/)Hudson/JenkinsEclipse Mylyn (soon ?)+/- Mantis

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 27: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Perspectives

More interoperability in FLOSS tools

Push standardization in tools development

Eclipse Mylyn support of OSLC (in the FLOSS parts), basedon Eclipse Lyo roots ? . . . When ?

New opportunities

Open Linked Data for direct “mining” of FLOSS projectsdevelopment process metrics

Large scale bug tracking and QA process in the FLOSSecosystem

Qui vivra verra. . .

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Page 28: OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools

Intoduction FLOSS development issues OSLC Interoperability Conclusion

Questions ?

Fin

Thanks.

More

OSLC Tutorial : http ://open-services.net/tutorial/Micro-blogging : @oberger http://identi.ca/oberger/Email : mailto:[email protected] : http://www-public.it-sudparis.eu/~berger_o/weblog/

Copyright 2011 Institut Telecom + Olivier BergerLicense of this presentation : Creative Commons Share AlikeSome illustrations borrowed from the OSLC specificationss (licence Creative Commons)

Olivier Berger <[email protected]>, Télécom SudParis

OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools