OSLC_README.md 4.16 KB
Newer Older
Pietro Braghieri's avatar
Pietro Braghieri committed
1
2
3
4
5
6
7
8
# OSLC    
[OSLC](https://open-services.net/) (Open Services for Lifecycle Collaboration) is a set of specifications that enable integration of software development. It is based on several web standards, like the W3C Resource Description Framework (RDF), Linked Data and REST and enables integration at data level via links between related resources. OSLC resources are defined in terms of RDF properties. Operations on resources are performed using HTTP.

OSLC is organized into individual topics such a change management, test management, requirements management and configuration management.  
These topics have [specifications](https://open-services.net/specifications/) called **domains** which leverage the OASIS OSLC lifecycle integration Core Specification and enable interoperation through the specification of standard domain vocabularies, constraints, and services.  

For the integration with our tools, we select the [Automation](https://archive.open-services.net/wiki/automation/OSLC-Automation-Specification-Version-2.1/index.html) specifications.  
The OSLC Automation domain define resources as `Automation Plan`, `Automation Request` and `Automation Result`; they are in relationship as shown below  
Pietro Braghieri's avatar
Pietro Braghieri committed
9

Pietro Braghieri's avatar
Pietro Braghieri committed
10
11
12
13
[<img src="/docs/AutomationResourcesRelationship.png" width="600">](/docs/AutomationResourcesRelationship.png)

A OSLC Service Provider based on the OSLC Automation domain has been realized.  
The figure below shows the interactions between the OSCL Client ([CHESS](https://projects.eclipse.org/projects/polarsys.chess) in this example) and the Service Provider:  
Pietro Braghieri's avatar
Pietro Braghieri committed
14

Pietro Braghieri's avatar
Pietro Braghieri committed
15
16
17
[<img src="/docs/OSLC_FBK_Tool_Interactions.png" width="600">](/docs/OSLC_FBK_Tool_Interactions.png)  


Pietro Braghieri's avatar
Pietro Braghieri committed
18
19
The integration and implementation of the tool chain through OSLC is realized by a web application server (i.e. [Tomcat](https://tomcat.apache.org/)) that runs the OSCL Registry (that lists the available services) and the OSLC Service Provider that interacts with the analysis tools as shown below:   

Pietro Braghieri's avatar
Pietro Braghieri committed
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[<img src="/docs/OSLC_FBK_Tool_WebApplication.png" width="600">](/docs/OSLC_FBK_Tool_WebApplication.png)

The analysis tool functionalities are be available by means of Automation Plans; the title attribute `<dcterms:title>` of the Automation Plan selects the tool functionality.  
At the current time, the available Plans for the FBK analysis tools are the following:

| Analysis Tool Functionality | Automation Plan `dcterms:title` |
| ------ | ------ |
| Check Contract Refinement | ocra_check_refinement |
| Check Contract Implementation | ocra_check_implementation |
| Check Contract Composite Implementation | ocra_check_composite_impl |
| Check Contract Validation Property | ocra_check_validation_prop |
| Compute Fault Tree | ocra_compute_fault_tree |
| Print System Implementation | ocra_print_system_implementation |
| Print Implementation Template | ocra_print_implementation_template |
| Instantiate Parametric Architecture | ocra_instantiate_parametric_arch |
| Get Required Architecture Parameters | ocra_get_required_arch_parameters |
| Behavior Model Check | nuxmv_check_model |
| Expand Fault Extensions | xsap_expand_fault_extensions |
| Extend Model | xsap_extend_model |
| Compute Fault Tree | xsap_compute_fault_tree |
| Compute FMEA Table | xsap_compute_fmea_table|

The OSLC Service Provider exposes additional services for listing the service provider catalogue, the list of Automation Plans that are available in the current instance of service provider, the Automation Requests that were submitted and the list of Automation Results.

Each services has an end point that is listed in the following table:
| Service | End Point |
| ---- | ---- |
| OSLC Service Catalogue | `<web_server_address>/oslc4j-registry/catalog` |
| List of available Plans | `<web_server_address>/<context>/services/autoPlans` |
| List of Current Requests | `<web_server_address>/<context>/services/autoRequests` |
| List of Current Results | `<web_server_address>/<context>/services/autoResults` |  

For example, to get the list the available Automation Plans, calls the end point `<web_server_address>/<context>/services/autoPlans` and the corresponding answer will be a RDF/XML output that lists all Automation Plans that are supported by the Service Provider.