blob: cf9d29148dde8d0dd2dd00aea270c3eb53f46896 [file] [log] [blame]
<html>
<head>
<title>Winery</title>
</head>
<style>
dt {
display: list-item;
list-style-position:outside;
list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
margin-left:16px;
}
dd {
margin-left:25px;
margin-bottom:5px;
}
</style>
<body>
<p>
The Winery project is a proposed open source project under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=soa">SOA
Top Level Project</a>.
</p>
<p>
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
<a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a>
Forum.
</p>
<h2>Background</h2>
<p>
<a href="https://www.oasis-open.org/committees/tosca/">TOSCA</a> 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&rsquo;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.
<a href="http://www.omg.org/spec/BPMN/2.0/">BPMN</a> and <a href="http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html">BPEL</a> are explicitly mentioned as possible language 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.
</p>
<h2>Why the name &ldquo;Winery&rdquo;?</h2>
<p>
The &ldquo;Winery&rdquo; produces wine in bottles (i.e., CSARs, the TOSCA packaging format), which are finally served in glasses (the instances of a Cloud service).
</p>
<h2>Scope</h2>
<p>
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.
</p>
<p>
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 <a href="http://dx.doi.org/ 10.1007/978-3-642-33155-8_4">BPMN4TOSCA</a>, which adds TOSCA-specific tasks and data objects to BPMN.
</p>
<p>
The intention is to cover TOSCA v1.0 and all upcoming versions completely in a vendor neutral way.
</p>
<h2>Out of Scope</h2>
<p>
Winery offers a BPMN modeler, which supports modeling executable processes for managing application topologies.
This puts a full support of the complete BPMN language out of scope.
</p>
<p>
Workflow engines typically execute BPEL, therefore BPMN4TOSCA has to be converted to BPEL.
A conversion of BPMN processes to BPEL processes is not in the scope of this project.
This part may be done under the hood of the <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.mangrove">Mangrove</a> or <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.bpel">BPEL</a> project.
</p>
<h2>Description</h2>
<img src="overview.png" height="203px" />
<p>
Winery consists of four parts: (1) Type and template management, (2) topology modeler, (3) BPMN4TOSCA plan modeler, and (4) the repository.
</p>
<p>
The <em>type and template management</em> enables managing all TOSCA types and templates can be managed. This includes node types, relationship types, policy types, artifact types, and artifact templates.
</p>
<p>
The <em>topology modeler</em> 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.
</p>
<p>
The <em>BPMN4TOSCA plan modeler</em> 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. From technology perspective, the BPMN Modeler uses the same techniques as the topology modeler.
</p>
<p>
The <em>repository</em> 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.
</p>
<h2>Relationship with other Eclipse Projects</h2>
<p>
<a href="http://www.eclipse.org/projects/project_summary.php?projectid=eclipse.orion">Orion</a> 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 <a href="http://wiki.eclipse.org/Orion/Server_API">APIs</a> to create workspaces and to work with files. Winery's backend currently does not offer any user management. The file storage part of the backend could be replaced by the Orion server, which would bring user management and text-based editing of stored data with the Orion client.
</p>
<p>
The Eclipse project <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.stardust">Stardust</a> provides a comprehensive Business Process Management Suite, which includes a Web-based BPMN modeling component and a workflow execution engine.
Integration with Winery is not viable, because the Web-based modeling component is tightly coupled with their runtime engine.
In the context of Winery, we develop a web-based modeling framework, which is instantiated as TOSCA topology modeler and a BPMN4TOSCA modeler.
Winery does not depend on any BPMN runtime engine.
Plans of arbitrary tools (including Stardust, the <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.bpel">BPEL Designer</a>, the <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.bpmn2-modeler">BPMN2 Modeler</a>, and the <a href="http://www.eclipse.org/projects/project_summary.php?projectid=soa.jwt">Java Workflow Tooling</a>) can be imported.
</p>
<p>
The <a href="http://www.eclipse.org/projects/project_summary.php?projectid=technology.g-eclipse">g-Eclipse</a> project offers &ldquo;tools for grid and cloud computing&rdquo;. Although it is under <a href="http://wiki.eclipse.org/Technology/Subproject_Termination_Review_2013">termination review</a>, it offers a &ldquo;Job Description Language&rdquo; and connectors to a small number of cloud providers. It has no graphical modeling environment, which is the main focus of Winery.
<h2>Why Eclipse?</h2>
<p>
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.
</p>
<p>
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.
</p>
<h2>Initial Contribution</h2>
<p>
The initial contribution 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.
Based on this state, the next step is to build the BPMN4TOSCA plan modeler based on the framework defined by the topology modeler.
</p>
<p>
The backend-code is written in Java and JSPs.
Items can be stored locally or in the cloud, which is enabled by the usage of the <a href="http://incubator.apache.org/projects/jclouds.html">jclouds library</a>.
The frontend-code is written in JavaScript embedded in HTML generated by JSPs.
The graph editing capabilities are based on the <a href="http://jsplumbtoolkit.com/">jsPlumb library</a> and <a href="http://jquery.com/">jQuery</a>.
</p>
<h2>Legal Issues</h2>
<p>
It is intended to dual-license Winery under the Apache License 2.0 and the Eclipse Public License 1.0.
</p>
<p>
None known. All libraries used in the initial code contribution have licenses approved by the Eclipse Software Foundation.
</p>
<h2>Committers</h2>
<p>The following individuals are proposed as initial committers to the project:</p>
<dl>
<dt>Oliver Kopp, University of Stuttgart (lead)</dt>
<dt>C. Timurhan Sungur, University of Stuttgart</dt>
</dl>
<p>We welcome additional committers and contributions.</p>
<h2>Interested Parties</h2>
<p>The following individuals, organisations, companies, and projects have
expressed interest in this project:</p>
<ul>
<li>Gerd Breiter, IBM</li>
<li>Schahram Dustdar, TU Vienna</li>
<li>J&uuml;rgen Heinrich, KIVBF</li>
<li>Alex Heneveld, Cloudsoft</li>
<li>Paul Lipton, CA</li>
<li>Peter Niehues, regio iT</li>
<li>Derek Palma, Vnomic</li>
<li>Albrecht St&auml;bler, NovaTec</li>
<li>Tobias Unger, gridsolut</li>
</ul>
<h2>Project Scheduling</h2>
<table>
<tr>
<th>Month</th>
<th>Milestone</th>
</tr>
<tr>
<td>August 2013</td>
<td>Initial code contribution</td>
</tr>
<tr>
<td>September 2013</td>
<td>Start of implementation of the BPMN4TOSCA Plan Modeler</td>
</tr>
<tr>
<td>October 2013</td>
<td>IP clearance by Eclipse Foundation, provisioning of the project on Eclipse.org infrastructure</td>
</tr>
</table>
<h2>Changes to this Document</h2>
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>01-07-2013</td>
<td>Document created</td>
</tr>
</table>
</body>
</html>