Prev Next

Service Provider and Service Provider Resource

Enterprise Architect acts as an OSLC Provider that other OSLC-compliant tools (OSLC Consumer/Clients) access to link to its Resources. All OSLC Resources live in a Service Provider, which is a central organizing concept of OSLC. In Enterprise Architect, each model that can be accessed via the Pro Cloud Server is treated as an OSLC Service Provider. The Packages, elements, diagrams and connectors in the model are the OSLC Resources.

When an OSLC Consumer tries to consume data from OSLC Provider, it has to know all the services that the OSLC Provider offers. This can be achieved via a Service Provider Resource; that is, the services offered by the Service Provider can be retrieved using the Service Provider Resource. A Service Provider Resource specifies the:

  • URL to which you can POST representations to create new Resources
  • URL you can use to GET a list of existing Resources
  • URL from which you can get the metadata of:
         -  XML that has to be POSTed to create new Resources
         -  XML that represents the retrieved existing Resources

To retrieve the Service Provider Resource for an Enterprise Architect model connected via the Pro Cloud Server, use the URL:

     <protocol>://<server>/<model_name>/oslc/am/sp/

For example, the Service Provider Resource for a model called 'firebird_model', connected via the Pro Cloud Server, can be accessed using the URL:

     http://localhost:480/firebird_model/oslc/am/sp/

The retrieved resource will typically resemble this example.

Example Resource XML

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:oslc="http://open-services.net/ns/core#"

xmlns:dcterms="http://purl.org/dc/terms/"

xmlns:ss="https://sparxsystems.com.au/oslc_am#">

    <oslc:ServiceProvider rdf:about="http://mybuildvm:2480/firebird_model/oslc/am/sp/">

        <dcterms:title>firebird:anonymous@firebird_model</dcterms:title>

        <dcterms:publisher>

            <oslc:Publisher>

                <dcterms:title>Sparx Systems</dcterms:title>

                <dcterms:identifier>https://sparxsystems.com.au/</dcterms:identifier>

<!--Enterprise Architect's OSLC Architecture Management 2.0 Implementation Version-->

                <ss:version>1.01.1740</ss:version>

<!--Specifies whether Pro Cloud Server Connection to Enterprise Architect Model is Read-Only-->

                <ss:readonlyconnection>false</ss:readonlyconnection>

<!--Specifies whether User Security is enable in the Enterprise Architect Model-->

                <ss:securityenabledmodel>false</ss:securityenabledmodel>

<!--Specifies the Enterprise Architect Model Repository-->

                <ss:modelrepository>Firebird</ss:modelrepository>

<!--Specifies the Pro Cloud Server Edition-->

                <ss:prolicense>Enterprise</ss:prolicense>

<!--Specifies the Pro Cloud Server Expiry Date -->

                <ss:prolicenseexpiry>2018-05-01</ss:prolicenseexpiry>

            </oslc:Publisher>

        </dcterms:publisher>

<!--Specifies the OSLC Architecture Management 2.0 Services supported by Enterprise Architect-->

        <oslc:service>

            <oslc:Service>

                <oslc:domain rdf:resource="http://open-services.net/ns/am#"/>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Package/Element</dcterms:title>

<!--Create new Resource (Package/Element) in the Enterprise Architect Model by POSTing Resource XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/resource/"/>

<!--URL describing metadata of the Resource XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfresource/"/>

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfprofileresource/"/>

                        <oslc:usage rdf:resource="http://open-services/ns/core#default"/>

                        <oslc:resourceType rdf:resource="http://open-services.net/ns/am#Resource"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Link</dcterms:title>

<!--Create new Connector in the Enterprise Architect Model by POSTing Connector XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/resourcelink/"/>

<!--URL describing metadata of the Connector XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cflinktype/"/>

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfprofilelinktype/"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Element Attribute</dcterms:title>

<!--Create new Element Attribute in the Enterprise Architect Model by POSTing Attribute XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/attribute/"/>

<!--URL describing metadata of the Attribute XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfattribute/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#attribute"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Element Operation</dcterms:title>

<!--Create new Element Operation in the Enterprise Architect Model by POSTing Operation XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/operation/"/>

<!--URL describing metadata of the Operation XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfoperation/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#operation"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Operation Parameter</dcterms:title>

<!--Create new Element Operation Parameter in the Enterprise Architect Model by POSTing Operation Parameter XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/operationparameter/"/>

<!--URL describing metadata of the Operation Parameter XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfoperationparameter/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#operationparameter"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Discussion</dcterms:title>

<!--Create new Package/Element Discussion in the Enterprise Architect Model by POSTing Discussion XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/discussion/"/>

<!--URL describing metadata of the Discussion XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfdiscussion/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#discussion"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Discussion Reply</dcterms:title>

<!--Create new Package/Element Discussion Reply in the Enterprise Architect Model by POSTing Discussion Reply XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/reply/"/>

<!--URL describing metadata of the Discussion Reply XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfreply/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#reply"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Resource Allocation</dcterms:title>

<!--Create new Package/Element Resource Allocation in the Enterprise Architect Model by POSTing Resource Allocation XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/resourceallocation/"/>

<!--URL describing metadata of the Resource Allocation XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfresourceallocation/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#resourceallocation"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Test</dcterms:title>

<!--Create new Package/Element Test in the Enterprise Architect Model by POSTing Test XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/test/"/>

<!--URL describing metadata of the Test XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cftest/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#test"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Tagged Value</dcterms:title>

<!--Create new Package/Element Tagged Value in the Enterprise Architect Model by POSTing Tagged Value XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/taggedvalue/"/>

<!--URL describing metadata of the Tagged Value XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cftaggedvalue/"/>

                        <oslc:resourceType rdf:resource="https://sparxsystems.com.au/oslc_am#taggedvalue"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Maintenance Item ( Change/Defect/Issue/Task/Event/Decision )</dcterms:title>

<!--Create new Package/Element Maintenance Item in the Enterprise Architect Model by POSTing Maintenance Item XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/maintenanceitem/"/>

<!--URL describing metadata of the Change XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfchange/"/>

<!--URL describing metadata of the Defect XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfdefect/"/>

<!--URL describing metadata of the Issue XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfissue/"/>

<!--URL describing metadata of the Task XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cftask/"/>

<!--URL describing metadata of the Event XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfevent/"/>

<!--URL describing metadata of the Decision XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfdecision/"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:creationFactory>

                    <oslc:CreationFactory>

                        <dcterms:title>Creation Factory for Enterprise Architect Project Management Item ( Effort/Risk/Metric )</dcterms:title>

<!--Create new Package/Element Project Management Item in the Enterprise Architect Model by POSTing Project Management Item XML to this URL-->

                        <oslc:creation rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/cf/projectmanagementitem/"/>

<!--URL describing metadata of the Effort XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfeffort/"/>

<!--URL describing metadata of the Risk XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfrisk/"/>

<!--URL describing metadata of the Metric XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/cfmetric/"/>

                    </oslc:CreationFactory>

                </oslc:creationFactory>

                <oslc:queryCapability>

                    <oslc:QueryCapability>

                        <dcterms:title>Resource Query</dcterms:title>

<!--Retrieve Resources (Packages/Elements/Diagrams) from the Enterprise Architect Model by sending GET request with query parameters to this URL-->

                        <oslc:queryBase rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/qc/"/>

<!--URL describing metadata of the retrieved Resource XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/resource/"/>

                        <oslc:resourceType rdf:resource="http://open-services.net/ns/am#Resource"/>

                    </oslc:QueryCapability>

                </oslc:queryCapability>

                <oslc:queryCapability>

                    <oslc:QueryCapability>

                        <dcterms:title>Link Type Query</dcterms:title>

<!--Retrieve all valid Enterprise Architect Connector Types using this URL-->

                        <oslc:queryBase rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/lt/"/>

<!--URL describing metadata of the retrieved Link Type Query XML-->

                        <oslc:resourceShape rdf:resource="http://mybuildvm:2480/firebird_model/oslc/am/rs/linktype/"/>

                        <oslc:resourceType rdf:resource="http://open-services.net/ns/am#LinkType"/>

                    </oslc:QueryCapability>

                </oslc:queryCapability>

            </oslc:Service>

        </oslc:service>

<!--Specifies OAuth Authentication details, when Model is configured for OpenID Connect Authentication-->

<oslc:oauthConfiguration>

            <oslc:OAuthConfiguration>

                <oslc:oauthRequestTokenURI/>

<!--OAth Server Endpoint to authorize User access to Model-->

                <oslc:authorizationURI rdf:resource="http://192.168.1.106:8080/auth/realms/master/protocol/openid-connect/auth"/>

<!--OAth Server Endpoint to convert authorization Code into access Token-->

                <oslc:oauthAccessTokenURI rdf:resource="http://192.168.1.106:8080/auth/realms/master/protocol/openid-connect/token"/>

<!--Authentication Protocol used - currently supported protocol is OpenID Connect-->

                <ss:authenticationprotocol rdf:resource="http://openid.net/specs/openid-connect-core-1_0.html"/>

<!--OAuth Client Identifier, as specified in OAuth Server-->

                <ss:clientid>EA_PCS_OSLC</ss:clientid>

<!--OpenID Connect Scope-->

                <ss:scope>openid</ss:scope>

            </oslc:OAuthConfiguration>

        </oslc:oauthConfiguration>

<!--Namespaces and their Prefixes-->

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>rdf</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>rdfs</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>oslc</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://open-services.net/ns/core#"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>oslc_am</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://open-services.net/ns/am#"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>dcterms</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://purl.org/dc/terms/"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>foaf</oslc:prefix>

                <oslc:prefixBase rdf:resource="http://xmlns.com/foaf/0.1/"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

        <oslc:prefixDefinition>

            <oslc:PrefixDefinition>

                <oslc:prefix>ss</oslc:prefix>

                <oslc:prefixBase rdf:resource="https://sparxsystems.com.au/oslc_am#"/>

            </oslc:PrefixDefinition>

        </oslc:prefixDefinition>

    </oslc:ServiceProvider>   

</rdf:RDF>

Elements of the Service Provider Resource

Element

Description

oslc:Publisher

Specifies the OSLC Provider.

oslc:Service

Specifies the services offered by the OSLC Provider. Enterprise Architect supports these OSLC Architecture Management services:

  • Creation Factory for Packages and Elements - Create new Packages or elements in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/resource/
  • Creation Factory for Package and Element Connectors - Create new Package or element connectors in the model by passing the resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/resourcelink/
  • Creation Factory for Element Attributes - Create new element attributes in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/attribute/
  • Creation Factory for Element Operations - Create new element operations in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/operation/
  • Creation Factory for Element Operation Parameters - Create new element operation parameters in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/operationparameter/
  • Creation Factory for Package and Element Discussions - Create new Package/element Discussions in the model by passing the Discussion representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/discussion/
  • Creation Factory for Package and Element Discussion Replies - Create new Package and element Discussion replies in the model by passing the Reply representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/reply/
  • Creation Factory for Package and Element Resource Allocations - Create new Package and element Resource Allocations in the model by passing the Resource Allocation representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/resourceallocation/
  • Creation Factory for Package and Element Tests - Create new Package and element Tests in the model by passing the Test representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/test/
  • Creation Factory for Package and Element Tagged Values - Create new Package and element Tagged Values in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

    <protocol>://<server>/<model_name>/oslc/am/cf/taggedvalue/
  • Creation Factory for Package and Element Maintenance Items - Create new Package and element Maintenance Items (Changes, Defects, Issues, Tasks, Event, Decision) in the model by passing their resource representation in RDF/XML format using HTTP POST to the URL:

         -  Change
            <protocol>://<server>/<model_name>/oslc/am/cf/change/

         -  Defect
            <protocol>://<server>/<model_name>/oslc/am/cf/defect/

         -  Issue
            <protocol>://<server>/<model_name>/oslc/am/cf/issue/

         -  Task
            <protocol>://<server>/<model_name>/oslc/am/cf/task/

         -  Event
            <protocol>://<server>/<model_name>/oslc/am/cf/event/

         -  Decision
            <protocol>://<server>/<model_name>/oslc/am/cf/decision/
  • Creation Factory for Package and Element Project Management Items - Create new Package and element Project Management Items (Efforts, Risks and Metrics) in the model by passing their resource representation in RDF format using HTTP POST to the URL:

         -  Effort
            <protocol>://<server>/<model_name>/oslc/am/cf/effort/

         -  Risk
            <protocol>://<server>/<model_name>/oslc/am/cf/risk/

         -  Metric
            <protocol>://<server>/<model_name>/oslc/am/cf/metric/
  • Query Capability - Query the Enterprise Architect Model for its resources by passing the query using HTTP GET to the URL:

    <protocol>://<server>/<model_name>/oslc/am/qc/
  • Link Type Query Capability - Query the Enterprise Architect Model to retrieve all the supported Connector Types, using the URL:

    <protocol>://<server>/<model_name>/oslc/am/lt/

oslc:resourceShape

Specifies the resource metadata; that is, its properties and constraints.

oslc:oauthConfiguration

Specifies the OpenID URIs and details necessary for authorizing the User in a Model that has OpenID authentication enabled.

Use the authorizationURI to authenticate the User in the OpenID Server and retrieve the authorization Code; pass this Code in the /oslc/am/login/ request to receive the User Authentication Token.

oslc:prefixDefinition

Specifies the namespace prefixes and their namespace definitions.

Notes

  • This facility is available through these Enterprise Architect Pro Cloud Server editions, under Enterprise Architect Release 13.5 or higher: Small Business Edition, Team Server Edition and Enterprise Server Edition
  • Creation Factory Service will not be available when the Pro Cloud Server connection to the Enterprise Architect model is configured as a read-only connection

Learn more