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 <olivier.berger@it-sudparis.eu>,
Télécom SudParis
Wednesday 2011/11/30
ICSSEA 2011
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 issues
OSLC Standard
Interoperability of development tools
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 SudParis
http://www.telecom-sudparis.eu/
Higher education school in Évry (France), sister of Telecom
Paristech, also member of Institut Telecom.
Olivier BERGER
<olivier.berger@it-sudparis.eu>
Research Engineer at TELECOM SudParis, expert on software
development forges, and interoperability in the libre software
development projects.
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 software
lifecycle 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 / Our
Savior Lutheran Church
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 Source
project :
http:
//www.eclipse.org/lyo/
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 Standard
patent non-assert covenant signed by all contributors
specifications under Creative Commons
various domains (ALM, PLM)
OSLC-CM (Change Management)
More domains, but haven’t participated myself
Technology
based on the Web’s tech standards : REST, RDF, AJAX,
Dublin Core
going from the LAN to the Web (>= 2.0, Linked Data)
pragmatic approach
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 Core
http://open-services.net/bin/view/Main/OslcCore
OSLC-CM : Change Management (bug trackers, etc.)
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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
Example (JSON)
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#">
"prefixes" : {
"oslc": "http://open-services.net/ns/core#",
<oslc_blog:Entry
"rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-
rdf:about="http://example.com/blogs/entry/1">
"foaf" : "http://http://xmlns.com/foaf/0.1/",
"dcterms" : "http://purl.org/dc/terms/"
<dcterms:title>I love trash</dcterms:title>
},
<dcterms:modified>2002-10-10T12:00:00-05:00</dcterms:modified>
"rdf:type" : { "rdf:resource" : "http://open-service
<dcterms:content>
"rdf:about" : "http://example.com/blogs/entry/1",
Anything dirty or dingy or dusty.
"dcterms:title" : "I love trash",
Anything ragged or rotten or rusty.
"dcterms:modified" : "2002-10-10T12:00:00-05:00",
</dcterms:content>
"dcterms:content" : "Anything dirty or dingy or dust
<dcterms:creator>
"dcterms:creator" : {
<foaf:Person>
"foaf:name" : "Oscar T. Grouch"
<foaf:name>Oscar T. Grouch</foaf:name>
},
</foaf:Person>
}
</dcterms:creator>
</oslc_blog:Entry>
</rdf:RDF>
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 operations
Create (POST)
Retrieve (GET)
Update (PUT)
Delete (DEL)
Integration / interop oriented APIs
resource IDs == URLs (RDF, Linked Data)
minimal REST APIs + extensions for each product’s features
delegated dialogues -> AJAX scenarii
resource preview,
OAuth
etc.
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 "olivier.berger@it-sudparis.eu" ;
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 suites
Open Source tools or Proprietary Software alike
Software development forges
Agile methodologies vs. monolithic suites
Traceability
Scalability
Very poor interoperability
Syntactic
Semantic
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 for
URIs + AJAX preview
http://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/OslcCompactPreviewTooltips
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 Consumer
Can create bug reports in case of failed builds/tests on distant
bugtracker
We have developped an Open Source plugin for Jenkins (Java,
Javascript mashup, OSLC-CM plugin published on GiHub)
FusionForge Trackers as OSLC-CM Provider
Handles the bug reports DB, and exhibits an OSLC-CM
compatible REST API
Delegates authentication to consumers on behalf of real forge
users, through OAuth
We have developed an Open Source plugin (PHP + Zend
Framework, published on FusionForge’s SVN)
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 <olivier.berger@it-sudparis.eu>, Télécom SudParis
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 ?
Proprietary
IBM/Rational : Jazz, RTC,. . .
Tasktop Sync
...
FLOSS
FusionForge trackers
Bugzilla (through Eclipse Lyo : http ://eclipse.org/lyo/)
Hudson/Jenkins
Eclipse Mylyn (soon ?)
+/- Mantis
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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), based
on Eclipse Lyo roots ? . . . When ?
New opportunities
Open Linked Data for direct “mining” of FLOSS projects
development process metrics
Large scale bug tracking and QA process in the FLOSS
ecosystem
Qui vivra verra. . .
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
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:olivier.berger@it-sudparis.eu
Blog : http://www-public.it-sudparis.eu/~berger_o/weblog/
Copyright 2011 Institut Telecom + Olivier Berger
License of this presentation : Creative Commons Share Alike
Some illustrations borrowed from the OSLC specificationss (licence Creative Commons)
Olivier Berger <olivier.berger@it-sudparis.eu>, Télécom SudParis
OSLC (Open Services for Lifecycle Collaboration): open standard for interoperability of open source ALM tools