IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
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
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
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
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
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
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
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
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
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