In this scenario the server performs a long running operation like a MDD transformation. The transformation creates and modifies resources on the server, and perhaps externally (i.e. in SCM). The client initiates the process with a request to create a certain type of resource. The client can then poll that resource for status.
The general outline of the scenario is captured in the following sequence diagram.
We are considering this as a general pattern for executing services, especially long running services on managed resources. The actual details of the resource properties are not important at this point, but are used below as part of an actual executable example.
In this example the transformation happens on resources that the AM service provider manager (i.e. Entity resources), and produce source code and/or configuration files. These generated resources are placed in an SCM or on a filesystem. The transformation process updates each of the resources transformed, setting a property to point to the generated artifact as the most recently generated resource.
The transformation resource itself goes througha series of status (Initiated -> Processing -> [Completed Succesfully | Completed Unsuccessfully] ). This status is a property of the transformation resource.
The transformation can be canceled by DELETE ing it or perhaps the client can PUT and update to the resource with an action property to abort. jc: I prefer using PUT to change the state of the resource rather than deleting it. Because we don't really want the resource to go away, just want to stop the process from continuing.
Some changes the service might reject (i.e. changing of parameter values mid way through transformation).
This scenario requires a separate resource type to represent the transformation (generation). Its properties both indicate the type of transformation but also any parameters for the transform. This example also requires a specialized AM resource to act as the source of the transformation.
Entity Generator Resource is a resource that represents and manages a long running transformation of Entities to source code.
EntityGeneratorResource
http://open-services.net/ns/am#EntityGeneratorResource
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
dcterms:title | exactly-one | unspecified | String | n/a | n/a | The name of this transformation. | |
dcterms:description | zero-or-one | unspecified | String | n/a | n/a | Descriptive text about the transformation. | |
oslc_am:status | exactly-one | true | String | n/a | n/a | The current status of this transformation. | |
oslc_am:entity | one-or-more | true | Resource | Reference | oslc_am:EntityResource | A reference to an Entity to include in the transformation. | |
oslc_am:path | exactly-one | true | String | n/a | n/a | A path relative to the service provider pointing where to place the generated resources. | |
oslc_am:startTime | exactly-one | true | Date Time | n/a | n/a | The time the service started the transformation process. This time may be different from the creation time of this resource. | |
oslc_am:completionTime | exactly-one | true | Date Time | n/a | n/a | The time the transformation completed. |
Entity Resource is a model element resource that represents an Entity. It has simple properties (name/type) and can be transformed into source code.
EntityResource
http://open-services.net/ns/am#EntityResource
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
dcterms:title | exactly-one | unspecified | String | n/a | n/a | The name of this Entity. | |
dcterms:description | zero-or-one | unspecified | String | n/a | n/a | Descriptive text about the Entity. | |
oslc_am:entityProperty | zero-or-one | false | Local Resource | Inline | oslc_am:EntityProperty | A simple property of this entity | |
oslc_am:latestGeneratedEntity | zero-or-one | true | String | n/a | n/a | A path relative to the service provider pointing where the latest source to be generated from this entity is. |
Entity Property is a simple property on an Entity.
EntityProperty
http://open-services.net/ns/am#EntityProperty
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
dcterms:title | exactly-one | false | String | n/a | n/a | The name of this property | |
dcterms:type | exactly-one | false | String | n/a | n/a | The type of this property. |
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() |
OSLCTransformationResources.png | manage | 15.2 K | 10 Nov 2011 - 12:08 | JimConallen | OSLC resources in transformation |
![]() |
servicetypes.png | manage | 73.3 K | 10 Nov 2011 - 16:13 | JimConallen | collaborative discussion in 10-nov-2011 mtg |