blob: 0ec6453820ef36a97b4c959b7aad1a55f9ae6833 [file] [log] [blame]
<!--
This document is provided as a template along with some guidance for creating
your project proposal. This is just a template. Feel free to change it as
you see fit (add sections, remove section). We feel, however, that the
suggestions represented in this document represent the reasonable minimum
amount of information to move forward.
Please keep the formatting in this document simple. Please do not edit
this document in Microsoft Word as it adds huge piles of markup that make
it difficult to restyle.
More information is available here:
http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
Direct any questions about this template to emo@eclipse.org
-->
<html>
<head>
<!--
Include the title here. We will parse it out of here and include it on the
rendered webpage. Do not duplicate the title within the text of your page.
-->
<title>BPMN 2.0 Modeler</title>
</head>
<!--
We make use of the 'classic' HTML Definition List (dl) tag to specify
committers. I know... you haven't seen this tag in a long while...
-->
<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 BPMN 2.0 Modeler project is a proposed open source project
under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=soa">Service
Oriented Architecture (SOA) Container Project</a>.</p>
<!--
The communication channel must be specified. Typically, this is the
"Proposals" forum. In general, you don't need to change this.
-->
<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>
Feedback may also be provided by participating in discussions on the
<a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=163">Eclipse
SOA Forum</a>
or by email to the
<a href="https://dev.eclipse.org/mailman/listinfo/soa-dev">soa-dev</a>
or
<a href="https://dev.eclipse.org/mailman/listinfo/soa-pmc">soa-pmc</a>
mailing lists.
<h2>Background</h2>
<p>The mission of the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=soa">SOA
Project</a> is to build frameworks and extensible tools that enable the
design, configuration, assembly, deployment, monitoring, and management
of software designed around a Service Oriented Architecture. The project
is guided by the values of transparency, extensibility, vendor
neutrality, community collaboration, agile development, and
standards-based innovation.</p>
<p>There has been a lot of interest recently in the BPMN 2.0 specification, and many feel that what UML is to object modeling,
BPMN 2.0 will be to business process modeling and will become the de facto standard.
<p>The BPMN 2.0 Modeler provides a graphical modeling tool which
allows creation and editing of BPMN ( <a href="http://www.bpmn.org/">Business
Process Modeling Notation</a> ) diagrams. The tool is built on <a
href="http://www.eclipse.org/graphiti">Eclipse Graphiti</a> and uses
the <a href="http://www.eclipse.org/modeling/mdt/?project=bpmn2">BPMN 2.0 EMF meta model</a> currently being developed
within the Eclipse <a href="http://www.eclipse.org/modeling/mdt/">Model
Development Tools</a> (MDT) project. This meta model is compatible with the
<a href="http://www.omg.org/spec/BPMN/2.0/PDF">BPMN 2.0
specification</a> (herafter &quot;the specification&quot;) proposed by the <a
href="http://www.osoa.org/display/Main/Home">Object Management
Group</a>.</p>
<h2>Scope</h2>
The following features are in scope for the BPMN 2.0 Modeler project:
<ol>
<li>Basic BPMN 2.0-compliant file creation and editing capabilities
<li>Process Modeling, Process Execution and Choreography Modeling Conformance as defined section 2 of the specification
<li>Plug-in extension points that allow the editor to be customized for specific applications
<li>BPEL Process Execution Conformance as defined in section 2.3 of the specification
<li>Deployment of BPMN resources to a suitable runtime
<li>Simulation and debug support of business processes
<li>Extensive process validation, such as sequence flow paths
</ol>
<h2>Description</h2>
The specific intent of this project is to provide an intuitive modeling
tool for the business analyst, which conforms to well-established
Eclipse user interface design practices.
The BPMN 2.0 Modeler provides visual, graphical editing and
creation of BPMN 2.0-compliant files with support for both the BPMN
domain as well as the Diagram Interchange models. Currently the editor
is functional and can consume and produce valid BPMN 2.0 model files.
Although work is ongoing, only items 1, 2 and 3 listed in the Scope
section have been completed. Information regarding the current state of
the code is updated regularly and is available in the <a
href="https://github.com/imeikas/BPMN2-Editor-for-Eclipse/wiki">project
wiki at GitHub</a>.
<h2>Why Eclipse?</h2>
<!--
Answer these two questions: What value does this project bring to the Eclipse
community? What value do you expect to obtain from hosting your project at Eclipse?
What value do you get by having your project at Eclipse over and above the value
of hosting at Eclipse Labs?
-->
While the MDT Project brings a BPMN 2.0 meta model into Eclipse,
there is as yet no visual tool for building and editing BPMN 2.0 artifacts.
The proposed BPMN 2.0 Modeler, even though still in its infancy, already supports a large and functional feature set.
We feel that there is sufficient interest in the Eclipse community, and specifically within the SOA Project community,
for a BPMN 2.0-compliant editor to help us continue to develop this tool.
<p>Another reason for hosting this project at Eclipse is because it relies heavily on existing Eclipse top-level
projects as well as SOA sub-projects. By hosting the BPMN 2.0 Modeler at
Eclipse, we can ensure that it will remain compatible and hope to effect
some level of influence in the future direction of these projects.
<h3>Relationship with other Eclipse Projects</h3>
The BPMN sub-project will be built on top of the Eclipse Platform and will depend on the following Eclipse projects.
<ul>
<li><a href="http://www.eclipse.org/mdt">MDT Project</a> includes the BPMN2 meta model, which is the underlying model for the BPMN 2.0 Modeler.
<li><a href="http://www.eclipse.org/emf">EMF Project</a> is required for access to the BPMN2 meta model.
<li><a href="http://www.eclipse.org/modeling/emf/?project=validation#validation">EMF Validation Framework</a> is used to implement additional validation rules.
<li><a href="http://www.eclipse.org/graphiti">Graphiti Project</a> is the graphical framework for the BPMN 2.0 Modeler.
<li><a href="http://www.eclipse.org/mangrove">Mangrove Project</a> will be used to connect the BPMN 2.0 Modeler
to other editors in the SOA project, as well as to transport execution information such as monitoring data,
to BPMN 2.0 diagrams.
</ul>
While the existing
<a href="http://www.eclipse.org/bpmn/">Eclipse BPMN Modeler</a>
does provide business process modeling functionality, it is based on the
BPMN 1.1 specification which lacks some very important functionality:
<ul>
<li>the generated artifacts can't be directly deployed in a
straightforward way to runtime environments
<li>the BPMN 1.1 specification does not define a presentation model,
requiring the use of additional, proprietary models
which must be kept in sync with the domain model<li>it does not formally define extension points that allows
vendors to address specific needs without breaking the model
<li>it does not support choreographies to allow building of
applications that cross organizational boundaries
</ul>
The BPMN 2.0 Modeler is based on the most recent recommendation from the
OMG consortium, which resolves these issues.
<p>We have been in discussions with the BPMN Modeler project team and, in their opinion,
changing the scope of the existing project to include the BPMN 2.0 specification would be difficult at best
and may lead to confusion about the intent of that project. Their recommendation was to create a new SOA sub-project
for a BPMN 2.0 editor.
<h2>Initial Contribution</h2>
The current version of the editor is being hosted at GitHub and can be
obtained
<a href="https://github.com/imeikas/BPMN2-Editor-for-Eclipse">here</a>
. This will become the initial code contribution to the project.<h2>Legal Issues</h2>
<!--
Please describe any potential legal issues in this section. Does somebody else
own the trademark to the project name? Is there some issue that prevents you
from licensing the project under the Eclipse Public License? Are parts of the
code available under some other license? Are there any LGPL/GPL bits that you
absolutely require?
-->
In November of 2010,
<a href="http://www.redhat.com/">Red Hat, Inc.</a>
commissioned
<a href="http://codehoop.com/">Codehoop, OU</a>
to develop the initial basic editing framework for this editor, with the
understanding that it would eventually become an Eclipse project.
Codehoop is a software consulting and development company focusing on
building and assembling Eclipse-based tools, plugins and tutorials, and
helping product teams establish their Eclipse capabilities. Codehoop
developers are active committers, contributors and community members for
several Eclipse-based projects at eclipse.org and elsewhere. The company
and its employees are well aware of the IP policies of the Eclipse
Foundation. The assumption is that the source code referenced in the
Initial Contribution section of this proposal is all original work, the
ownership of which has been legally transferred to Red Hat, Inc. as a
result of execution of the contract entered into by the two parties.
<p>The proposed project name (BPMN 2.0 Modeler) is descriptive and
generic, and does not infringe on any existing copyrighted product or
service.
<h2>Committers</h2>
<!--
List any initial committers that should be provisioned along with the
new project. Include affiliation, but do not include email addresses at
this point.
-->
<p>The following individuals are proposed as initial committers to
the project:</p>
<dl>
<dt>Bob Brodt, Red Hat, Inc.</dt>
<dd>Bob is project lead on the BPEL Designer project where he has
made significant contributions over the past year. He will assume
project leadership this new project.</dd>
<dt>Gary Brown, Red Hat, Inc.</dt>
<dd>Gary has made significant contributions to the OMG consortium by helping define the BPMN 2.0 specification. He
is a domain expert and will provide guidance for this new project.</dd>
<dt>Innar Made, Codehoop, OU</dt>
<dd>Innar is one of the original developers of the existing
code base; he was mostly involved in graphics and stencil logic. He has
offered to continue to contribute to this new project.</dd>
<dt>Ivar Meikas, Codehoop, OU</dt>
<dd>Ivar is one of the original developers of the existing
code base, working on integration with the meta model, properties
editor etc. He has also offered to continue to contribute to this new
project.</dd>
<dt>Kris Verlaenen, Red Hat, Inc.</dt>
<dd>Kris is the project lead for jBPM, a Red Hat product. jBPM
version 5 will be capable of directly executing BPMN 2.0-compliant
artifacts. He will provide guidance to this new project by ensuring
runtime compliance.
</dl>
<p>We welcome additional committers and contributions.</p>
<!--
Describe any initial contributions of code that will be brought to the
project. If there is no existing code, just remove this section.
-->
<h2>Mentors</h2>
<!--
New Eclipse projects require a minimum of two mentors from the Architecture
Council. You need to identify two mentors before the project is created. The
proposal can be posted before this section is filled in (it's a little easier
to find a mentor when the proposal itself is public).
-->
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Nick Boldt</li>
<li>John Graham</li>
<li>Kenn Hussey</li>
<li>Ed Merks</li>
</ul>
<h2>Interested Parties</h2>
<!--
Provide a list of individuals, organisations, companies, and other Eclipse
projects that are interested in this project. This list will provide some
insight into who your project's community will ultimately include. Where
possible, include affiliations. Do not include email addresses.
-->
<p>The following individuals, organisations, companies and projects
have expressed interest in this project:</p>
<ul>
<li>Ahti Kitsik, Codehoop</li>
<li>Adrian Mos, Xerox Research</li>
<li>Antoine Toulmé, Intalio</li>
<li>John Graham, Red Hat</li>
<li>Jan Hendrik Scheufen, SunGard</li>
<li>Marc Dutoo, Open Wide Technologies</li>
<li><a href="http://eclipse.org/jwt/">Java Workflow Tooling project</a></li>
</ul>
<h2>Project Scheduling</h2>
<h3>April 2011</h3>
<ul>
<li>Make initial code contribution to Eclipse.
<li>Set up nightly builds and update site.
</ul>
<h3>June 2011</h3>
<ul>
<li>Stabilize code and add missing features such as Outline views.
<li>Integrate with server deployment framework.
<li>Build wizards or assistants to ease creation and configuration
of some of the more complex notation elements (e.g. collaborations).
</ul>
<h3>October 2011</h3>
<ul>
<li>Define and implement plug-in extension points as described in
the Scope section of this proposal.
<li>Add multiple tabs for displaying various BPMN 2.0 diagram
types.
<li>Customize editor tools based on the diagram type being edited,
e.g. by limiting the notation elements available on the tool palette,
providing different wizards and assistants, etc.
</ul>
<h3>January 2012</h3>
<ul>
<li>Support process debugging.
<li>Support BPEL Process Execution Conformance. BPEL export/import
will be accomplished with <a href="http://eclipse.org/mangrove/">Mangrove</a>.
</ul>
<h2>Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>April-20-2011</td>
<td>Document created</td>
</tr>
</table>
</body>
</html>