SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
Cassiopee Project 2012




Implementing the support of OSLC-CM
                           in Simple Defects
            Cliquez pour modifier le style des sous-titres du
            masque




Stéphanie Ouillon - Mentor : Olivier Berger
Contents


           q    Simple Defects (SD)
           q    SD connectors
           q    Introduction to OSLC-CM
           q    Development goal
           q    Net-OSLC-CM Perl module
           q    OSLC connector in SD
           q    Using and testing
           q    Making-up


Cassiopee 2012          OSLC-CM connector in SD
Specifications




q  Implementing a OSLC-CM adaptator
    for the bugtracker Simple Defects

q  Open Source contribution

q  Publishing content on the web


Base de données Pro

 Cassiopee 2012    OSLC-CM connector in SD
Simple Defects (SD)


                 Simple Defects (SD)
           q    Introduction to OSLC-CM
           q    Development goal
           q    SD connectors
           q    Net-OSLC-CM Perl module
           q    OSLC connector in SD
           q    Using and testing
           q    Making-up

Cassiopee 2012          OSLC-CM connector in SD
Simple Defects : a bugtracker




q  In command ligne

Prophet database




 Cassiopee 2012    OSLC-CM connector in SD
Simple Defects : a bugtracker



               filesystem                   code


    IDE
                                                      Server/storage



                                            bugs




      Web browser


5         Cassiopee 2012    OSLC-CM connector in SD
Simple Defects : a bugtracker



                 filesystem                   code


Terminal + Vim
                                                        Server/storage



                                              bugs
                 filesystem

Terminal + SD




  6        Cassiopee 2012     OSLC-CM connector in SD
Simple Defects : un bugtracker




q  In command ligne

q  Prophet database

https://gitorious.org/prophet/prophet




 Cassiopee 2012    OSLC-CM connector in SD
Prophet



ü  Semi-relationnal

ü  Peer to peer replicated

ü  Disconnected

ü  Versioned

ü  Self-healing conflict resolution

 Cassiopee 2012     OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Demonstration




Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Introduction to OSLC-CM


                 Simple Defects (SD)
                 Introduction to OSLC-CM
           q    Development goal
           q    SD connectors
           q    Net-OSLC-CM Perl module
           q    OSLC connector in SD
           q    Using and testing
           q    Making-up

Cassiopee 2012          OSLC-CM connector in SD
OSLC



Open Services for Lifecycle Collaboration

q  Specifications

     ü  Sharing data

     ü  Between software development tools



 Cassiopee 2012      OSLC-CM connector in SD
Specifications




q  Core specifications v2

q  Change Management specifications v2

  Defining a web services REST interface
  for Change Management



 Cassiopee 2012    OSLC-CM connector in SD
Change Management




q  Defects, bugs

q  Change requests, tasks




 Cassiopee 2012     OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Principles: REST – Linked Data



q  ‘’Everything is a URI.’’

q  RDF/XML data format

q  HTTP protocol
      Pull : GET
      Push : POST, UPDATE, DELETE



  Cassiopee 2012     OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Development goal


                 Simple Defects (SD)
                 Introduction to OSLC-CM
                 Development goal
           q    SD connectors
           q    Net-OSLC-CM Perl module
           q    OSLC connector in SD
           q    Using and testing
           q    Making-up

Cassiopee 2012          OSLC-CM connector in SD
Goal




     SD                            Bugzilla




                        Adaptator
                        OSLC-CM Service Provider




Cassiopee 2012   OSLC-CM connector in SD
Goal



         Adaptator
     OSLC-CM Consumer


     SD                              Bugzilla




                          Adaptator
                          OSLC-CM Service Provider




Cassiopee 2012     OSLC-CM connector in SD
SD connectors


                 Simple Defects (SD)
                 Introduction to OSLC-CM
                 Development goal
                 SD connectors
           q    Net-OSLC-CM Perl module
           q    OSLC connector in SD
           q    Using and testing
           q    Making-up

Cassiopee 2012          OSLC-CM connector in SD
Development in SD




q  Developed in Perl 5

q  Object-oriented with Moose




 Cassiopee 2012    OSLC-CM connector in SD
Example with Github bugtracker



q  3 classes in Replica/

    ü  github.pm

    ü  github/PullEncoder.pm

    ü  github/PushEncoder.pm



 Cassiopee 2012     OSLC-CM connector in SD
Partial UML diagram (inheritance)




Cassiopee 2012   OSLC-CM connector in SD
Example with Github




q  Perl interface for github.com

   Net::GitHub::V2




 Cassiopee 2012      OSLC-CM connector in SD
Example with Github



q  github.pm module
      $sd clone –-from 
      ‘github:http://github.com/arroway/SD/issues’


    ü  Authentification (OAuth or basic auth)

    ü  Connection




 Cassiopee 2012    OSLC-CM connector in SD
Example with Github




q  github/PullEncoder.pm module

  find_matching_tickets

  calls

  github->issue->list(‘open’)
  github->issue->list(‘closed’)


 Cassiopee 2012   OSLC-CM connector in SD
Example with Github




q  github/PushEncoder.pm module

  integrate_ticket_create/update

  calls

  $github->issue->open/edit



 Cassiopee 2012   OSLC-CM connector in SD
Net-OSLC-CM Perl Module


               Simple Defects (SD)
               SD connectors
               Introduction to OSLC-CM
               Development goal
               Net-OSLC-CM Perl Module
           q  OSLC connector in SD
           q  Using and testing
           q  Making-up

Cassiopee 2012      OSLC-CM connector in SD
Net-OSLC-CM




q  Standard Perl module

q  Helping implement a OSLC-CM Consumer




 Cassiopee 2012   OSLC-CM connector in SD
Cassiopee 2012   OSLC-CM connector in SD
Example


use Net::OSLC::CM;

  my $oslccm = Net::OSLC::CM−>new(
        url   => $self−>remote_url,
        username => $username,
        password => $password
  ));

  # Getting an array of changeRequests
  my @results = $oslccm−>get_oslc_resources;




       Cassiopee 2012    OSLC-CM connector in SD
Résultat final




                 my @results =
                      $oslccm−>changeRequests;




Cassiopee 2012    OSLC-CM connector in SD
Detailed example

$oslccm−>url = "http://example.com";

 $oslccm−>parser(
    Net::OSLC::CM::Parser−>new(cm => $oslccm)
 );

 $oslccm−>create_catalog;
 $oslccm−>get_provider_catalog_resource;

 $oslccm−>get_service_providers;

 $oslccm−>get_changeRequests($oslccm−>providers);
 $oslccm−>load_changeRequests();

 my @results = $oslccm−>changeRequests;



         Cassiopee 2012         OSLC-CM connector in SD
Connection to a bugtracker
Connection

                                            http://localhost:8282/bugz
      Connection
      Authentification (basic auth)



       Consumer


                            Connection OK
                            Authenticated




         Cassiopee 2012           OSLC-CM connector in SD
Getting the Service Provider Catalog
GET Catalog

  GET http://localhost:8282/bugz/            http://localhost:8282/bugz
  catalog
  Accept => application/rdf+xml



      Consumer



  <oslc:ServiceProviderCatalog rdf:about="http://localhost/bugz/catalog">




          Cassiopee 2012            OSLC-CM connector in SD
Catalog RDF/XML
Service Provider Catalog
<oslc:ServiceProviderCatalog rdf:about="http://localhost:8282/bugz/catalog">
    <dcterms:title>OSLC-CM Adapter/Bugzilla Service Provider Catalog</dcterms:title>
    <oslc:domain rdf:resource="http://open-services.net/ns/cm#" />

    <oslc:serviceProvider>
         <oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider?
productId=1">
              <dcterms:title>TestProduct</dcterms:title>
         </oslc:ServiceProvider>
    </oslc:serviceProvider>

     <oslc:serviceProvider>
          <oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider?
productId=3">
               <dcterms:title>FakePortal</dcterms:title>
          </oslc:ServiceProvider>
     </oslc:serviceProvider>
</oslc:ServiceProviderCatalog>



            Cassiopee 2012              OSLC-CM connector in SD
Getting Service Providers data
GET Service Providers

   GET http://localhost:8282/bugz/provider?productId=1
   GET http://localhost:8282/bugz/provider?productId=2
   GET http://localhost:8282/bugz/provider?productId=3
   …


       Consumer




          Cassiopee 2012            OSLC-CM connector in SD
Service Provider RDF/XML
Service Provider
<oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider?productId=1">
  <dcterms:title>Bugzilla Service Provider: Product TestProduct(1)</dcterms:title>

  <oslc:Service>

    <oslc:selectionDialog/>
    <oslc:creationDialog/>
    <oslc:CreationFactory/>
    <oslc:QueryCapability>
         <oslc:queryBase rdf:resource="http://localhost:8282/bugz/changerequests?
              productId=1" />
         <oslc:resourceShape rdf:resource="http://localhost:8282/bugz/queryshape?
              productId=1" />
    </oslc:QueryCapability>

  <oslc:Service/>

<oslc:ServiceProvider/>



             Cassiopee 2012               OSLC-CM connector in SD
Getting a list of Change Requests (tickets)

GET Change Requests list


   GET http://localhost:8282/bugz/changerequests?productId=1




      Consumer




          Cassiopee 2012         OSLC-CM connector in SD
Getting a Change Request

GET Change Request


  GET http://localhost:8282/bugz/changerequest?id=24




      Consumer




         Cassiopee 2012         OSLC-CM connector in SD
Change Request RDF/XML

Change Request
<oslc_cm:ChangeRequest rdf:about="http://192.168.56.101:8282/bugz/changerequest?
id=24">

    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string”>
         New Bug: installation
    </dcterms:title>
    <dcterms:created rdf:datatype=“http://www.w3.org/2001 XMLSchema#dateTime”>
         2012-04-22T16:16:00Z
    </dcterms:created>
    <dcterms:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string”>
         24
    </dcterms:identifier>

    …

</oslc_cm:ChangeRequest>




            Cassiopee 2012             OSLC-CM connector in SD
OSLC connector in SD


               Simple Defects (SD)
               SD Connectors
               Introduction to OSLC-CM
               Development goal
               Net-OSLC-CM Perl Module
               OSLC connector in SD
           q  Using and testing
           q  Making-up

Cassiopee 2012       OSLC-CM connector in SD
Result gained from Net::OSLC::CM




                 my @results =
                      $oslccm−>changeRequests;




Cassiopee 2012    OSLC-CM connector in SD
Result gained from Net::OSLC::CM




                 my @results =
                      $oslccm−>changeRequests;




                        List of tickets in SD


Cassiopee 2012    OSLC-CM connector in SD
Using and testing


               Simple Defects (SD)
               SD connectors
               Introduction to OSLC-CM
               Development goal
               Net-OSLC-CM Perl Module
               OSLC connector in SD
               Using and testing
           q  Making-up

Cassiopee 2012       OSLC-CM connector in SD
Test environment



                Adaptator
            OSLC-CM Consumer


            SD                              Bugzilla




                                 Adaptator
                                 OSLC-CM Service Provider

Host


       Cassiopee 2012     OSLC-CM connector in SD
Test environment



                Adaptator      Debian virtual machine
            OSLC-CM Consumer


            SD                               Bugzilla




                                  Adaptator
                                  OSLC-CM Service Provider

Host


       Cassiopee 2012     OSLC-CM connector in SD
Test environment



                Adaptator        Debian virtual machine
            OSLC-CM Consumer


            SD                                 Bugzilla




                                    Adaptator
                                    OSLC-CM Service Provider

Host                           Vboxnet network interface between
                               host and guest (//local network)

       Cassiopee 2012     OSLC-CM connector in SD
Demonstration




Cassiopee 2012   OSLC-CM connector in SD
Testing Net::OSLC::CM



q  With Test::More

q  Testing Net::OSLC::CM classes

      01-connection.t
      02-get-provider-catalog-resources.t
      03-get-service-providers.t
      04-get-change-requests.t


 Cassiopee 2012       OSLC-CM connector in SD
Making-up


                 Simple Defects (SD)
                 SD connectors
                 Introduction to OSLC-CM
                 Development goal
                 Net-OSLC-CM Perl Module
                 OSLC connector in SD
                 Using and testing
                 Making-up

Cassiopee 2012          OSLC-CM connector in SD
Commits in Net-OSLC-CM




Cassiopee 2012   OSLC-CM connector in SD
Next development steps


q  Implementing the Push part in Net::OSLC::CM
      with a serializer RDF/XML

q  Implementing PushEncoder.pm in SD

q  Completing the implementation of the specs

q  Refactoring Net::OSLC::CM
     ü  RDF data are extensible – so is the
         Prophet database
     ü  Data OSLC/ Net OSLC

     Cassiopee 2012    OSLC-CM connector in SD
What I learned


q  Perl 5 and OO Perl with Moose

q  Creation of a Perl module

q  Tests with Test::More

q  Specifications OSLC-CM v2

q  Searching through RDF data and
    performing SPARQL queries


     Cassiopee 2012    OSLC-CM connector in SD
Links

q  Source code
    http://github.com/arroway/Net-OSLC-CM (Perl licence)
    http://github/com/arroway/SD (Best Practicals Solutions)

q  Documentation
    http://arroway.github.com/Net-OSLC-CM

q  SD
    http://syncwith.us

q  OSLC
    http://open-services.net


   Cassiopee 2012        OSLC-CM connector in SD

Más contenido relacionado

Similar a Implementing OSLC-CM Support in a Bug Tracker

DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)dpc
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0Orient Technologies
 
WebDynPro for Java Common Error v5
WebDynPro for Java  Common Error v5WebDynPro for Java  Common Error v5
WebDynPro for Java Common Error v5Jodi Johnson
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCAlexandre Gouaillard
 
Automated CI with AEM Cloud service
Automated CI with AEM Cloud serviceAutomated CI with AEM Cloud service
Automated CI with AEM Cloud serviceJakub Wadolowski
 
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & CoInfrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & CoTorben Knerr
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetesinovex GmbH
 
WSO2 Application Server - Product Overview
WSO2 Application Server - Product OverviewWSO2 Application Server - Product Overview
WSO2 Application Server - Product OverviewWSO2
 
Developer-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDeveloper-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDevOps Indonesia
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integrationgjuljo
 
Oracle RAC One Node 12c Overview
Oracle RAC One Node 12c OverviewOracle RAC One Node 12c Overview
Oracle RAC One Node 12c OverviewMarkus Michalewicz
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)Geekstone
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...mfrancis
 
Web Components: Introduction and Practical Use Cases
Web Components: Introduction and Practical Use CasesWeb Components: Introduction and Practical Use Cases
Web Components: Introduction and Practical Use Casessumitamar
 
Rails is Easy*
Rails is Easy*Rails is Easy*
Rails is Easy*bryanbibat
 
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1Apkudo
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?Brainhub
 
Don't Be a Lopsided Web Developer
Don't Be a Lopsided Web DeveloperDon't Be a Lopsided Web Developer
Don't Be a Lopsided Web DeveloperDavid Pallmann
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaJudy Breedlove
 

Similar a Implementing OSLC-CM Support in a Bug Tracker (20)

DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)DPC2007 PHP And Oracle (Kuassi Mensah)
DPC2007 PHP And Oracle (Kuassi Mensah)
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0
 
WebDynPro for Java Common Error v5
WebDynPro for Java  Common Error v5WebDynPro for Java  Common Error v5
WebDynPro for Java Common Error v5
 
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYCPractical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC
 
Automated CI with AEM Cloud service
Automated CI with AEM Cloud serviceAutomated CI with AEM Cloud service
Automated CI with AEM Cloud service
 
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & CoInfrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetes
 
WSO2 Application Server - Product Overview
WSO2 Application Server - Product OverviewWSO2 Application Server - Product Overview
WSO2 Application Server - Product Overview
 
Developer-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for KubernetesDeveloper-Friendly CI / CD for Kubernetes
Developer-Friendly CI / CD for Kubernetes
 
CQ5 and Sling overview
CQ5 and Sling overviewCQ5 and Sling overview
CQ5 and Sling overview
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integration
 
Oracle RAC One Node 12c Overview
Oracle RAC One Node 12c OverviewOracle RAC One Node 12c Overview
Oracle RAC One Node 12c Overview
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
Web Components: Introduction and Practical Use Cases
Web Components: Introduction and Practical Use CasesWeb Components: Introduction and Practical Use Cases
Web Components: Introduction and Practical Use Cases
 
Rails is Easy*
Rails is Easy*Rails is Easy*
Rails is Easy*
 
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1
Who Needs Thumbs? Reverse Engineering Scramble with Friends v1.1
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?
 
Don't Be a Lopsided Web Developer
Don't Be a Lopsided Web DeveloperDon't Be a Lopsided Web Developer
Don't Be a Lopsided Web Developer
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - Atlanta
 

Último

All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Último (20)

All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

Implementing OSLC-CM Support in a Bug Tracker

  • 1. Cassiopee Project 2012 Implementing the support of OSLC-CM in Simple Defects Cliquez pour modifier le style des sous-titres du masque Stéphanie Ouillon - Mentor : Olivier Berger
  • 2. Contents q  Simple Defects (SD) q  SD connectors q  Introduction to OSLC-CM q  Development goal q  Net-OSLC-CM Perl module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 3. Specifications q  Implementing a OSLC-CM adaptator for the bugtracker Simple Defects q  Open Source contribution q  Publishing content on the web Base de données Pro Cassiopee 2012 OSLC-CM connector in SD
  • 4. Simple Defects (SD) Simple Defects (SD) q  Introduction to OSLC-CM q  Development goal q  SD connectors q  Net-OSLC-CM Perl module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 5. Simple Defects : a bugtracker q  In command ligne Prophet database Cassiopee 2012 OSLC-CM connector in SD
  • 6. Simple Defects : a bugtracker filesystem code IDE Server/storage bugs Web browser 5 Cassiopee 2012 OSLC-CM connector in SD
  • 7. Simple Defects : a bugtracker filesystem code Terminal + Vim Server/storage bugs filesystem Terminal + SD 6 Cassiopee 2012 OSLC-CM connector in SD
  • 8. Simple Defects : un bugtracker q  In command ligne q  Prophet database https://gitorious.org/prophet/prophet Cassiopee 2012 OSLC-CM connector in SD
  • 9. Prophet ü  Semi-relationnal ü  Peer to peer replicated ü  Disconnected ü  Versioned ü  Self-healing conflict resolution Cassiopee 2012 OSLC-CM connector in SD
  • 10. Cassiopee 2012 OSLC-CM connector in SD
  • 11. Cassiopee 2012 OSLC-CM connector in SD
  • 12. Cassiopee 2012 OSLC-CM connector in SD
  • 13. Cassiopee 2012 OSLC-CM connector in SD
  • 14. Cassiopee 2012 OSLC-CM connector in SD
  • 15. Cassiopee 2012 OSLC-CM connector in SD
  • 16. Demonstration Cassiopee 2012 OSLC-CM connector in SD
  • 17. Cassiopee 2012 OSLC-CM connector in SD
  • 18. Cassiopee 2012 OSLC-CM connector in SD
  • 19. Introduction to OSLC-CM Simple Defects (SD) Introduction to OSLC-CM q  Development goal q  SD connectors q  Net-OSLC-CM Perl module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 20. OSLC Open Services for Lifecycle Collaboration q  Specifications ü  Sharing data ü  Between software development tools Cassiopee 2012 OSLC-CM connector in SD
  • 21. Specifications q  Core specifications v2 q  Change Management specifications v2 Defining a web services REST interface for Change Management Cassiopee 2012 OSLC-CM connector in SD
  • 22. Change Management q  Defects, bugs q  Change requests, tasks Cassiopee 2012 OSLC-CM connector in SD
  • 23. Cassiopee 2012 OSLC-CM connector in SD
  • 24. Cassiopee 2012 OSLC-CM connector in SD
  • 25. Principles: REST – Linked Data q  ‘’Everything is a URI.’’ q  RDF/XML data format q  HTTP protocol Pull : GET Push : POST, UPDATE, DELETE Cassiopee 2012 OSLC-CM connector in SD
  • 26. Cassiopee 2012 OSLC-CM connector in SD
  • 27. Development goal Simple Defects (SD) Introduction to OSLC-CM Development goal q  SD connectors q  Net-OSLC-CM Perl module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 28. Goal SD Bugzilla Adaptator OSLC-CM Service Provider Cassiopee 2012 OSLC-CM connector in SD
  • 29. Goal Adaptator OSLC-CM Consumer SD Bugzilla Adaptator OSLC-CM Service Provider Cassiopee 2012 OSLC-CM connector in SD
  • 30. SD connectors Simple Defects (SD) Introduction to OSLC-CM Development goal SD connectors q  Net-OSLC-CM Perl module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 31. Development in SD q  Developed in Perl 5 q  Object-oriented with Moose Cassiopee 2012 OSLC-CM connector in SD
  • 32. Example with Github bugtracker q  3 classes in Replica/ ü  github.pm ü  github/PullEncoder.pm ü  github/PushEncoder.pm Cassiopee 2012 OSLC-CM connector in SD
  • 33. Partial UML diagram (inheritance) Cassiopee 2012 OSLC-CM connector in SD
  • 34. Example with Github q  Perl interface for github.com Net::GitHub::V2 Cassiopee 2012 OSLC-CM connector in SD
  • 35. Example with Github q  github.pm module $sd clone –-from ‘github:http://github.com/arroway/SD/issues’ ü  Authentification (OAuth or basic auth) ü  Connection Cassiopee 2012 OSLC-CM connector in SD
  • 36. Example with Github q  github/PullEncoder.pm module find_matching_tickets calls github->issue->list(‘open’) github->issue->list(‘closed’) Cassiopee 2012 OSLC-CM connector in SD
  • 37. Example with Github q  github/PushEncoder.pm module integrate_ticket_create/update calls $github->issue->open/edit Cassiopee 2012 OSLC-CM connector in SD
  • 38. Net-OSLC-CM Perl Module Simple Defects (SD) SD connectors Introduction to OSLC-CM Development goal Net-OSLC-CM Perl Module q  OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 39. Net-OSLC-CM q  Standard Perl module q  Helping implement a OSLC-CM Consumer Cassiopee 2012 OSLC-CM connector in SD
  • 40. Cassiopee 2012 OSLC-CM connector in SD
  • 41. Example use Net::OSLC::CM; my $oslccm = Net::OSLC::CM−>new( url => $self−>remote_url, username => $username, password => $password )); # Getting an array of changeRequests my @results = $oslccm−>get_oslc_resources; Cassiopee 2012 OSLC-CM connector in SD
  • 42. Résultat final my @results = $oslccm−>changeRequests; Cassiopee 2012 OSLC-CM connector in SD
  • 43. Detailed example $oslccm−>url = "http://example.com"; $oslccm−>parser( Net::OSLC::CM::Parser−>new(cm => $oslccm) ); $oslccm−>create_catalog; $oslccm−>get_provider_catalog_resource; $oslccm−>get_service_providers; $oslccm−>get_changeRequests($oslccm−>providers); $oslccm−>load_changeRequests(); my @results = $oslccm−>changeRequests; Cassiopee 2012 OSLC-CM connector in SD
  • 44. Connection to a bugtracker Connection http://localhost:8282/bugz Connection Authentification (basic auth) Consumer Connection OK Authenticated Cassiopee 2012 OSLC-CM connector in SD
  • 45. Getting the Service Provider Catalog GET Catalog GET http://localhost:8282/bugz/ http://localhost:8282/bugz catalog Accept => application/rdf+xml Consumer <oslc:ServiceProviderCatalog rdf:about="http://localhost/bugz/catalog"> Cassiopee 2012 OSLC-CM connector in SD
  • 46. Catalog RDF/XML Service Provider Catalog <oslc:ServiceProviderCatalog rdf:about="http://localhost:8282/bugz/catalog"> <dcterms:title>OSLC-CM Adapter/Bugzilla Service Provider Catalog</dcterms:title> <oslc:domain rdf:resource="http://open-services.net/ns/cm#" /> <oslc:serviceProvider> <oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider? productId=1"> <dcterms:title>TestProduct</dcterms:title> </oslc:ServiceProvider> </oslc:serviceProvider> <oslc:serviceProvider> <oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider? productId=3"> <dcterms:title>FakePortal</dcterms:title> </oslc:ServiceProvider> </oslc:serviceProvider> </oslc:ServiceProviderCatalog> Cassiopee 2012 OSLC-CM connector in SD
  • 47. Getting Service Providers data GET Service Providers GET http://localhost:8282/bugz/provider?productId=1 GET http://localhost:8282/bugz/provider?productId=2 GET http://localhost:8282/bugz/provider?productId=3 … Consumer Cassiopee 2012 OSLC-CM connector in SD
  • 48. Service Provider RDF/XML Service Provider <oslc:ServiceProvider rdf:about="http://localhost:8282/bugz/provider?productId=1"> <dcterms:title>Bugzilla Service Provider: Product TestProduct(1)</dcterms:title> <oslc:Service> <oslc:selectionDialog/> <oslc:creationDialog/> <oslc:CreationFactory/> <oslc:QueryCapability> <oslc:queryBase rdf:resource="http://localhost:8282/bugz/changerequests? productId=1" /> <oslc:resourceShape rdf:resource="http://localhost:8282/bugz/queryshape? productId=1" /> </oslc:QueryCapability> <oslc:Service/> <oslc:ServiceProvider/> Cassiopee 2012 OSLC-CM connector in SD
  • 49. Getting a list of Change Requests (tickets) GET Change Requests list GET http://localhost:8282/bugz/changerequests?productId=1 Consumer Cassiopee 2012 OSLC-CM connector in SD
  • 50. Getting a Change Request GET Change Request GET http://localhost:8282/bugz/changerequest?id=24 Consumer Cassiopee 2012 OSLC-CM connector in SD
  • 51. Change Request RDF/XML Change Request <oslc_cm:ChangeRequest rdf:about="http://192.168.56.101:8282/bugz/changerequest? id=24"> <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string”> New Bug: installation </dcterms:title> <dcterms:created rdf:datatype=“http://www.w3.org/2001 XMLSchema#dateTime”> 2012-04-22T16:16:00Z </dcterms:created> <dcterms:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#string”> 24 </dcterms:identifier> … </oslc_cm:ChangeRequest> Cassiopee 2012 OSLC-CM connector in SD
  • 52. OSLC connector in SD Simple Defects (SD) SD Connectors Introduction to OSLC-CM Development goal Net-OSLC-CM Perl Module OSLC connector in SD q  Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 53. Result gained from Net::OSLC::CM my @results = $oslccm−>changeRequests; Cassiopee 2012 OSLC-CM connector in SD
  • 54. Result gained from Net::OSLC::CM my @results = $oslccm−>changeRequests; List of tickets in SD Cassiopee 2012 OSLC-CM connector in SD
  • 55. Using and testing Simple Defects (SD) SD connectors Introduction to OSLC-CM Development goal Net-OSLC-CM Perl Module OSLC connector in SD Using and testing q  Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 56. Test environment Adaptator OSLC-CM Consumer SD Bugzilla Adaptator OSLC-CM Service Provider Host Cassiopee 2012 OSLC-CM connector in SD
  • 57. Test environment Adaptator Debian virtual machine OSLC-CM Consumer SD Bugzilla Adaptator OSLC-CM Service Provider Host Cassiopee 2012 OSLC-CM connector in SD
  • 58. Test environment Adaptator Debian virtual machine OSLC-CM Consumer SD Bugzilla Adaptator OSLC-CM Service Provider Host Vboxnet network interface between host and guest (//local network) Cassiopee 2012 OSLC-CM connector in SD
  • 59. Demonstration Cassiopee 2012 OSLC-CM connector in SD
  • 60. Testing Net::OSLC::CM q  With Test::More q  Testing Net::OSLC::CM classes 01-connection.t 02-get-provider-catalog-resources.t 03-get-service-providers.t 04-get-change-requests.t Cassiopee 2012 OSLC-CM connector in SD
  • 61. Making-up Simple Defects (SD) SD connectors Introduction to OSLC-CM Development goal Net-OSLC-CM Perl Module OSLC connector in SD Using and testing Making-up Cassiopee 2012 OSLC-CM connector in SD
  • 62. Commits in Net-OSLC-CM Cassiopee 2012 OSLC-CM connector in SD
  • 63. Next development steps q  Implementing the Push part in Net::OSLC::CM with a serializer RDF/XML q  Implementing PushEncoder.pm in SD q  Completing the implementation of the specs q  Refactoring Net::OSLC::CM ü  RDF data are extensible – so is the Prophet database ü  Data OSLC/ Net OSLC Cassiopee 2012 OSLC-CM connector in SD
  • 64. What I learned q  Perl 5 and OO Perl with Moose q  Creation of a Perl module q  Tests with Test::More q  Specifications OSLC-CM v2 q  Searching through RDF data and performing SPARQL queries Cassiopee 2012 OSLC-CM connector in SD
  • 65. Links q  Source code http://github.com/arroway/Net-OSLC-CM (Perl licence) http://github/com/arroway/SD (Best Practicals Solutions) q  Documentation http://arroway.github.com/Net-OSLC-CM q  SD http://syncwith.us q  OSLC http://open-services.net Cassiopee 2012 OSLC-CM connector in SD