SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a OSLC-CM connector in SD

WebDynPro for Java Common Error v5
WebDynPro for Java  Common Error v5WebDynPro for Java  Common Error v5
WebDynPro for Java Common Error v5
Jodi 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 @ NYC
Alexandre Gouaillard
 
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
Apkudo
 

Semelhante a OSLC-CM connector in SD (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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

OSLC-CM connector in SD

  • 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