Repository: incubator-taverna-plugin-component Updated Branches: refs/heads/master 00c2f0686 -> 72ec68298
Taverna Component documentation Moved from https://github.com/apache/incubator-taverna-site/tree/8aea1aea1f859cf7ce0ce72f31f168f94e0672b5/content/documentation/components https://github.com/apache/incubator-taverna-site/tree/8aea1aea1f859cf7ce0ce72f31f168f94e0672b5/content/img Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/commit/0f0b3b69 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/tree/0f0b3b69 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/diff/0f0b3b69 Branch: refs/heads/master Commit: 0f0b3b69892b281ac6c5cc485812b0c6220af99e Parents: 00c2f06 Author: Stian Soiland-Reyes <[email protected]> Authored: Fri Jun 29 09:56:59 2018 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Jun 29 09:56:59 2018 +0100 ---------------------------------------------------------------------- doc/component-profile-editor.md | 26 +++++ doc/component-validator.md | 30 ++++++ doc/img/ComponentValidityDetails.png | Bin 0 -> 681068 bytes doc/img/ComponentValiditySummary.png | Bin 0 -> 85107 bytes doc/img/arch1.png | Bin 0 -> 76052 bytes doc/img/arch2.png | Bin 0 -> 95528 bytes doc/img/arch3.png | Bin 0 -> 11855 bytes doc/img/component-profile-editor.png | Bin 0 -> 381754 bytes doc/img/component_b_1.png | Bin 0 -> 55815 bytes doc/img/component_c.png | Bin 0 -> 257614 bytes doc/img/registry.png | Bin 0 -> 45790 bytes doc/index.md | 161 ++++++++++++++++++++++++++++++ 12 files changed, 217 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/component-profile-editor.md ---------------------------------------------------------------------- diff --git a/doc/component-profile-editor.md b/doc/component-profile-editor.md new file mode 100644 index 0000000..f784c6d --- /dev/null +++ b/doc/component-profile-editor.md @@ -0,0 +1,26 @@ +Title: Component profile editor +Notice: Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +The Taverna Component Profile Editor is a simple tool for editing and creating profiles for + [Taverna Components[(/documentation/components). +Component profiles define the required and supported interface of components; + they are not intended to be easily edited by normal users. +The editor guides an expert user as they define a profile, + showing features that they may use and providing assistance for defining semantic annotation requirements. + +<div align="center"><img src="img/component-profile-editor.png" alt="Component Profile Editor" width="600" /></div> http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/component-validator.md ---------------------------------------------------------------------- diff --git a/doc/component-validator.md b/doc/component-validator.md new file mode 100644 index 0000000..145e8d0 --- /dev/null +++ b/doc/component-validator.md @@ -0,0 +1,30 @@ +Title: Component validator +Notice: Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +The Taverna Component Validator is a tool and library for checking whether a + [Taverna Component](/documentation/components) satisfies the component profile defined by the family of which it is a member. +It applies a number of checks to the component such that when they are all satisfied, + the component can be considered to be a high-quality member of the component family, + and provides human-readable descriptions of the conditions that are checked and whether they were satisfied or not. + + + +We currently have the validator deployed on + [myExperiment.org](http://www.myexperiment.org) as an integrated feature of the metadata displayed about components. + + http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/ComponentValidityDetails.png ---------------------------------------------------------------------- diff --git a/doc/img/ComponentValidityDetails.png b/doc/img/ComponentValidityDetails.png new file mode 100644 index 0000000..8f42199 Binary files /dev/null and b/doc/img/ComponentValidityDetails.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/ComponentValiditySummary.png ---------------------------------------------------------------------- diff --git a/doc/img/ComponentValiditySummary.png b/doc/img/ComponentValiditySummary.png new file mode 100644 index 0000000..450f562 Binary files /dev/null and b/doc/img/ComponentValiditySummary.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/arch1.png ---------------------------------------------------------------------- diff --git a/doc/img/arch1.png b/doc/img/arch1.png new file mode 100644 index 0000000..6da049a Binary files /dev/null and b/doc/img/arch1.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/arch2.png ---------------------------------------------------------------------- diff --git a/doc/img/arch2.png b/doc/img/arch2.png new file mode 100644 index 0000000..e9806f2 Binary files /dev/null and b/doc/img/arch2.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/arch3.png ---------------------------------------------------------------------- diff --git a/doc/img/arch3.png b/doc/img/arch3.png new file mode 100644 index 0000000..db9d83e Binary files /dev/null and b/doc/img/arch3.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/component-profile-editor.png ---------------------------------------------------------------------- diff --git a/doc/img/component-profile-editor.png b/doc/img/component-profile-editor.png new file mode 100644 index 0000000..73634d8 Binary files /dev/null and b/doc/img/component-profile-editor.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/component_b_1.png ---------------------------------------------------------------------- diff --git a/doc/img/component_b_1.png b/doc/img/component_b_1.png new file mode 100644 index 0000000..f1fea82 Binary files /dev/null and b/doc/img/component_b_1.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/component_c.png ---------------------------------------------------------------------- diff --git a/doc/img/component_c.png b/doc/img/component_c.png new file mode 100644 index 0000000..d4edbdd Binary files /dev/null and b/doc/img/component_c.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/img/registry.png ---------------------------------------------------------------------- diff --git a/doc/img/registry.png b/doc/img/registry.png new file mode 100644 index 0000000..1b96a16 Binary files /dev/null and b/doc/img/registry.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-component/blob/0f0b3b69/doc/index.md ---------------------------------------------------------------------- diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 0000000..2f647bc --- /dev/null +++ b/doc/index.md @@ -0,0 +1,161 @@ +Title: Workflow Components +Notice: Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +[TOC] + +## Overview +Taverna Workflow Components are a system for creating shareable, reusable, + encapsulated sub-workflows that perform clearly defined tasks while abstracting + the details of how those tasks are performed. +They are an integrated feature of Taverna since Workbench 2.5.0 and Server 2.5.4. + +Taverna's system of service components was developed as part of the BioVeL and SCAPE projects. They consist of tools for the creation, management and use of workflow components, + along with a repository for the storage and sharing of those components. +Workflow components within a given component family will work together cleanly, + for example, by adhering to a tidy type system and being well described. + +## Requirements + +A set of minimal functional requirements for service component management has been developed. These requirements are + based upon previous component-related work carried out as part of the e-Lico project as well as an examination of the needs of BioVeL and SCAPE. + +The requirements include: + + - The ability to create components + - The specification of the characteristics that are necessary for a set of components to + âplayâ together â called a âcomponent profileâ + - Creating a component so it complies with a given profile + - Checking that a component complies with a given profile + - Publishing a component + - Discovering a component + - Including a component in a workflow + - Executing the component within a workflow run + +<img class="aligncenter" title="The Model of Components" src="img/registry.png" alt="" + width="433" height="251" /> + +## Workflows +### Example workflow with components + +This is an example workflow that includes components, with internal ports hidden for simplicity: + +<img class="alignnone" title="Componentized Workflow" src="img/component_b_1.png" alt="" + width="679" height="294" /> + +Without components, using the same view, it would instead look like this: + +[<img class="aligncenter" title="Un-componentized Workflow" src="img/component_c.png" alt="" width="245" height="526" />](http://www.taverna.org.uk/pages/wp-content/uploads/2013/05/component_c.png) + +### Including a component in a workflow + +A component can be added into a Taverna workflow in the same way as an ordinary service: + by dragging it from the service panel of the workbench into the workflow design view. + *Although it may be realized internally as a workflow, + a user sees it as a âblack boxâ and cannot (normally) edit the componentâs workflow.* + +<img class="aligncenter" src="img/arch3.png" alt="" width="500" height="401" /> + +It is intended that there will be consistency checks to ensure components are only plugged + together in a sensible manner, and for the discovery of (and connection to) suitable components + based upon existing workflow structure. + +### Executing a component in a workflow run + +When a component is invoked during a workflow run, the underlying workflow is called with the + corresponding data. +The results of the workflow are used as the output data for the component invocation. +*The user sees the component invocation as a âblack boxâ and cannot see details of + what happens inside.* + +>If you publish a workflow containing a component, you *must* make sure the + component is publicly readable in a globally-accessible component registry; + myExperiment is such a suitable registry. + +## Components +### Component creation + +It was decided that the majority of the information necessary for a component will be specified + as a Taverna workflow. +This allows complex internal component functionality and removes the need for extensive new + software to design components. + +<img class="aligncenter" src="img/arch1.png" alt="" width="340" height="433" /> + +### Component profile + +A specification of the format for the component profile has been agreed. +The format is in XML and an XML schema (xsd) has been created. +An example [component profile](http://www.myexperiment.org/files/905/versions/1/download/Characterisation%20Component.xml) + is available. +Components that share a profile will be collected together into component families. +A [component profile editor](/documentation/components/component-profile-editor) + is being developed. + +<p style="text-align: center;"> +<img class="aligncenter" src="img/arch2.png" alt="" width="359" height="412" /> +</p> + +The SCAPE project has an + [extended discussion of component profiles](https://github.com/openpreserve/scape-component-profiles) + available. + +### Component creation against a profile + +In order to conform to a component profile, it can be necessary to make semantic annotations + parts of the corresponding workflow. +For example, the annotation of the type of format in which data is output by a port or + a service with the task it performs. + +The component profile specifies the ontologies that will be used for the components within the + family, the correspondence between object classes within a workflow + (input port, service etc.) and the concepts within the ontologies. + +### Checking a component against a profile + +Although the components will be modified using a chosen profile, + it is unlikely that the components can be assured as being âcorrect by constructionâ. +For this reason, a separate + [component validator](/documentation/components/component-validator) + is being implemented. +The component validator is included within + [myExperiment](http://www.myexperiment.org). + +### Publishing a component + +Since components are realized as âextensionsâ to Taverna workflows, + it was decided that rather than using a separate component repository, + the extensive capabilities of myExperiment would be used. +Thus a component is currently published and shared on myExperiment as (a pack containing) + a workflow. +The components themselves are items within a pack corresponding to the component family. + +To facilitate the development of components, a workflow can also be saved to the userâs local + machine. + +When a user publishes a component either to myExperiment or to their local file system, + their service panel is updated to reflect the new component. + +### Discovering a component + +Since component families are realized as packs on myExperiment + (or by analogous structures in the userâs file system), + we use the existing Taverna code to talk to the myExperiment REST interface to give users + access to families of components. +Users can then see the discovered families of components via the Taverna Workbench service + panel, and the components within those families. +A component can then be added to a workflow.
