The Winery project is a proposed open source project under the SOA Top Level Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.
TOSCA is an industry standard for defining composite applications and their management, which allows moving cloud services and their components between providers and thus avoids vendor lock-in. All management knowledge required for a specific cloud service is captured in a service template, which contains a cloud service’s topology and its operational aspects rendered in management plans. The topology is a graph with nodes and relationships, which have types assigned. In turn, types introduce inheritance, properties, requirements/capability definitions, and a link to implementations of them. An implementation includes a definition of interfaces along with operations enabling management of the respective type. Management plans use these operations to cover deployment, management, and undeployment. BPMN and BPEL are explicitly mentioned as possible languages in the TOSCA specification, but management plans can be modeled in an arbitrary language. Regarding enactment of the management plans, TOSCA does not require a specialized workflow engine, but relies on standard workflow environments.
The “Winery” produces wine in bottles (i.e., CSARs, the TOSCA packaging format), which are finally served in glasses (the instances of a Cloud service).
Winery is a Web-based environment to graphically model TOSCA topologies and plans managing these topologies. The environment includes a type and template management component to offer creation and modification of all elements defined in the TOSCA specification. All information is stored in a repository, which allows importing and exporting using the TOSCA packaging format.
Winery allows uploading arbitrary workflows to be included in the service template, because TOSCA does not require a concrete plan language. Additionally, Winery offers a BPMN modeler as BPMN 2.0 can be regarded as the de-facto standard for graphical business process modeling. The plan modeling component is tightly integrated with the topology modeler to ease modeling by, for instance, offering a direct reference to management operations of a node template in the topology. This tight integration is enabled by using BPMN4TOSCA, which adds TOSCA-specific tasks and data objects to BPMN.
The intention is to cover TOSCA v1.0 and all upcoming versions completely in a vendor neutral way.
Winery offers extension points to include other web-based plan modelers. Besides the BPMN4TOSCA plan modeler, the development of other web-based plan modeling tools is out of scope.
Besides other languages, BPMN and BPEL may be used to describe executable processes. Therefore, BPMN4TOSCA should be to be converted to plain BPMN and to plain BPEL. The conversion of BPMN4TOSCA to plain BPMN is in scope of this project. A conversion of BPMN processes to BPEL processes is not in the scope of this project. This part might be pursued under the hood of the Mangrove or BPEL project.
Winery consists of four parts: (1) the type and template management, (2) the topology modeler, (3) the BPMN4TOSCA plan modeler, and (4) the repository.
The type, template and artifact management enables managing all TOSCA types, templates and related artifacts. This includes node types, relationship types, policy types, artifact types, artifact templates, and artifacts such as virtual machine images.
The topology modeler enables to create service templates. Service templates consist of instances of node types (node templates) and instances of relationship types (relationship templates). They can be annotated with requirements and capabilities, properties, and policies.
The BPMN4TOSCA plan modeler offers web-based creation of BPMN models with the TOSCA extension BPMN4TOSCA. That means the modeler supports the BPMN elements and structures required by TOSCA plans and not the full set of BPMN. The Stardust project offers a Browser Modeler, which supports BPMN. In the context of Winery, this modeler will be extended to support BPMN4TOSCA.
The repository stores TOSCA models and allows managing their content. For instance, node types, policy types, and artifact templates are managed by the repository. The repository is also responsible for importing and exporting CSARs, the exchange format of TOSCA files and related artifacts.
Orion offers software development in the browser. It is split into a client and a server. The server part is language agnostic and offers user management and APIs to create workspaces and to work with files. Winery’s backend currently does not offer any user management. Winery’s file storage could be replaced by an interface to the Orion server, which would bring user management and text-based editing of stored data with the Orion client.
The Eclipse project Stardust provides a comprehensive Business Process Management Suite, which includes a Web-based BPMN modeling component and a workflow execution engine. We use the Web-based BPMN modeling component as basis for the BPMN4TOSCA plan modeler.
The g-Eclipse project offers “tools for grid and cloud computing”. Although it is under termination review, it offers a “Job Description Language” and connectors to a small number of cloud providers. It has no graphical modeling environment, which is the main focus of Winery.
The Eclipse foundation provides an established environment for commercial-friendly open source software. The contribution guidelines provide a clean way to deal with IP issues. This will help to attract companies to work with and enhance Winery and to foster synergy effects between industry and research development. By using the Eclipse project ecosystem, we benefit from an established way to manage the code and issues.
Eclipse is widening towards web-based development, which manifests especially in the context of Orion. With our web-based tooling we will support this widening.
The initial contribution covers three parts of winery: (1) the type and template management, (2) the topology modeler, and (3) the repository. In its current state, Winery fully supports TOSCA v1.0: TOSCA elements can be created, edited, exported as CSAR, and imported from CSARs. Service Templates can be graphically modeled, whereby the modeler offers the node types and relationship types stored in the backend. The BPMN4TOSCA Plan Modeler is not part of the initial contribution, but will be developed as part of the Winery project.
It is intended to dual-license Winery under the Apache License 2.0 and the Eclipse Public License 1.0.
There are no known other legal issues. All libraries used in the initial code contribution have licenses approved by the Eclipse Software Foundation.
The following individuals are proposed as initial committers to the project:
We welcome additional committers and contributions.
The following Architecture Council members will mentor this project:
The following individuals, organisations, companies, and projects have expressed interest in this project:
|September 2013||Initial code contribution|
|October 2013||Start of implementation of the BPMN4TOSCA Plan Modeler|
|December 2013||IP clearance by Eclipse Foundation, provisioning of the project on Eclipse.org infrastructure|
Back to the top