(c) QoS.operator ← Constraint.operator allowing
to set the condition to satisfy the non-functional
characteristic’s value.
(d) QoS.unit ← Constraint.unit allowing to set the
unit used for the value of the non-functional
characteristic.
After examining the different classes, we now
project the relations in the asset model onto the rele-
vant constructs in the service model.
1. σ(ass:R .permission(C .Policy,C .Permission)) →
φ. The lack of corresponding constructs con-
firms that SLAs are free of any permissions per-
mitting their enablement. The same applies to
σ(ass:R .prohibition(C .Policy,C .Prohibition)) and
σ(ass:R .obligation(C .Policy,C.Duty)).
2. σ(ass:R .asset (C .Policy,C.Asset)) →
ser:R .sla(C .Service,C .SLA) allowing to link
a SLA corresponding to a policy to a service
corresponding to an asset.
(a) Service.sla ← SLA allowing to include the ref-
erence of the SLA in a service.
3. σ(ass:R .party(C .Policy,C .Party)) →
ser:R .provider(C .SLA,C .Provider) ∪
ser:R .provider(C .Service,C .Provider) allowing to
ensure that the provider that sets a service’s SLAs
corresponding to an assigner will be referenced in
both the SLAs and service associated with these
agreements.
(a) SLA.provider ← Provider allowing to include
the reference of the provider in a SLA.
(b) Service.provider ← Provider allowing to in-
clude the reference of the provider in a service.
4. σ(ass:R .party(C .Rule,C .Party)) → φ allows to
hide the relation that exists between the rule and
party, where Party.function is set to “assignee”.
5. σ(ass:R .constraint(C .Rule,C .Constraint)) → φ al-
lowing to hide the relation that exists between the
rule and constraint.
6. σ(ass:R .action(C .Rule,C.Action)) → φ allowing
to hide the relation that exists between the rule
and action.
7. σ(ass:R .refinement(C .Action,C.Constraint)) → φ
allowing to hide the relation that exists between
the action and constraint.
8. σ(ass:R .permission(C .Policy,C .Permission)) →
φ allowing to hide the relation that exists between
the policy and permission.
9. σ(ass:R .prohibition(C .Policy,C .Prohibition)) → φ
allowing to hide the relation that exists between
the policy and prohibition.
10. σ(ass:R .obligation(C .Policy,C .Duty)) → φ allow-
ing to hide the relation that exists between the pol-
icy and permission.
(a) SLA.consumer ← Consumer allowing to
include the reference of a consumer cor-
responding to an assignee in a SLA.
This reference corresponds to the relation
R .consumer(C .SLA,C .Consumer)
(b) Service.operation ← Operation allowing to in-
clude the reference of an operation in a ser-
vice. This reference corresponds to the relation
R .operation(C .Service,C .Operation)
(c) Service.qos ← QoS allowing to include the
reference of quality of service in a service.
This reference corresponds to the relation
R .qos(C .Service,C .QoS)
(d) SLA.qos ← Qos allowing to include the
reference of quality of service in a SLA.
This reference corresponds to the relation
R .qos(C .SLA,C .Qos)
4 PROTOTYPE
Developed in Python 3.0 along with using sys, json,
and pyqt5 libraries, the system implementing the pro-
jection operator σ consists of 5 modules, instantia-
tion, R-A projection, A-S projection, A-storage, and
S-storage, and 5 repositories, resources, R-A projec-
tion rules, A-S projection rules, assets, and services.
resource instance, asset instances, and service in-
stances are the system’s outcomes.
To demonstrate how the system is put into action,
we adopt coffee-shop-database as a resource from the
running example. This resource includes many inter-
faces with focus here on DBaccess that implements
read, update, delete, and save operations (Fig. 5’s left
panel). As per Fig. 3, on top of an interface’s non-
functional characteristics like concurrency for DBac-
cess, an operation can also have non-functional char-
acteristics like interactability and availability.
Following resource specification through a dedi-
cated editor, R-A projection module is initiated to map
resources specified in JSON files onto assets. Fig. 5’s
center panel partially shows the outcome of projecting
the coffee-shop-database resource into ODRL con-
structs such as asset, action, and rule. Among these
constructs that could be set manually, we mention for
instance, a permission rule to read concurrently the
database, a prohibition rule to proscribe updating the
database concurrently and during a specific period of
time, and an obligation rule to backup the database us-
ing the archive action. Finally, A-S projection mod-
ODRL-Based Resource Definition in Business Processes
231