Changes between Version 23 and Version 24 of SPIDocs


Ignore:
Timestamp:
Sep 25, 2014 4:51:13 PM (8 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SPIDocs

    v23 v24  
    455455The layout, procedure, data requirements and constraints on an experiment are sub-abstractions of an experiment called ''aspects''.  An experiment does not necessarily contain all aspects.  When a researcher first comes to DETERLab, their models and ideas are likely to be loosely defined.  We expect them to realize experiments that have only layout aspects.  As their ideas become more concrete and their results more stable, the other aspects become more fleshed out.
    456456
    457  Below we present a worked example of the layout aspect that illustrates this.
     457Ee present a worked example of the [LayoutAspect layout aspect] that illustrates this.
    458458
    459459Experiments also have [wiki:SPIDocs#Profiles profiles] attached to them so that other users can understand the purpose and goals of a project without investigating the aspects in detail.
     
    486486===== Layout Aspect =====
    487487
    488 The layout aspect specifies the elements and interconnections of an experimental environment.  We present it here in some detail, both because researchers will use it practically and as an example of a fleshed out aspect.
     488The [LayoutAspect layout aspect] specifies the elements and interconnections of an experimental environment.  [LayoutAspect We present it] in some detail, both because researchers will use it practically and as an example of a fleshed out aspect.
    489489
    490490
     
    523523==== Adding and Changing Experiment Aspects ====
    524524
    525 A user that is a member of a circle that has the `MODIFY_EXPERIMENT` [wiki:SPIDoc#ExperimentPerimissions permission] on an experiment can add or remove aspects from that experiment.  The operation to add aspects is `addExperimentAspects` in the `Experiments` service.  Changing existing aspects is done through `changeExperimentAspects`.
    526 
     525A user that is a member of a circle that has the `MODIFY_EXPERIMENT` [wiki:SPIDocs#ExperimentPermissions permission] on an experiment can add or remove aspects from that experiment.  The operation to add aspects is `addExperimentAspects` in the `Experiments` service.  Changing existing aspects is done through `changeExperimentAspects`.
     526
     527The parameters to `addExperimentAspect` are arrays of the type, subtype, name and data block.  Each of these are defined by the various aspects.  The [LayoutAspect#LayoutCallstotheExperimentSPI layout aspect] defines one set of properties.  In addition, adding one aspect may result in additional subaspects being added as well.  The [LayoutAspect#LayoutCallstotheExperimentSPI layout aspect] does this as well.
     528
     529There is a default aspect implementation that simply copies the data block of the `addExperimentAspects` call and stores it.  When an otherwise unknown aspect type is requested, this implemetation is called.  The intent is that service developers can copy data in and out of experiment definitions by picking an aspect type name.
     530
     531The `changeExperimentAspects` takes the same list of type, sub-type, name, and data block tuples, but in this case the data block is an aspect-specific update language.  The intention is to allow aspects to define update protocols.  To replace an aspect a user can generally call `removeExperimentAspects` and then `addExperimentAspects` to replace the removed aspects.  The [LayoutAspect#LayoutCallstotheExperimentSPI layout aspect] does not define a change protocol.  The default aspect implementation simply copies the contents of the data block over the existing data (if any).
     532
     533
     534==== Adding and Changing Experiment Access Control Lists ====
     535
     536All experiment permissions are controlled by access control lists (ACL) that map circles to experiment permissions.  The only exception to this is the owner of the experiment who always has all permissions.  Any user who has `MODIFY_EXPERIMENT_ACCESS` permissions to an experiment can change its ACLs.
     537
     538A user can set the ACLs on `createExperiment` by providing a list of (circle, permissions) pairs, where permissions is itself a list of permissions.  Any errors in specifying the ACLs will cause the creation to fail.
     539
     540A user can call `changeExperimentACL` with a list in the same format.  New entries will be added, existing entries will be overwritten, and entries with an empty permission list will be removed.  A partial success is possible and the result of each change is returned.
     541
     542
     543
     544