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

Post on 18-Nov-2014

3.223 views 2 download

description

 

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

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/30ICSSEA 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 issuesOSLC StandardInteroperability 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 SudParishttp://www.telecom-sudparis.eu/Higher education school in Évry (France), sister of TelecomParistech, also member of Institut Telecom.

Olivier BERGER<olivier.berger@it-sudparis.eu>Research Engineer at TELECOM SudParis, expert on softwaredevelopment forges, and interoperability in the libre softwaredevelopment 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 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 <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 Sourceproject :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 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 <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 Corehttp://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

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 <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 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 <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 suitesOpen Source tools or Proprietary Software alikeSoftware development forges

Agile methodologies vs. monolithic suites

Traceability

Scalability

Very poor interoperabilitySyntacticSemantic

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 forURIs + 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 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 <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 ?

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

FLOSSFusionForge trackersBugzilla (through Eclipse Lyo : http ://eclipse.org/lyo/)Hudson/JenkinsEclipse 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), 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 <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.euBlog : 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 <olivier.berger@it-sudparis.eu>, Télécom SudParis

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