Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "WTP/Service Interface and Data Types Editors/Proposal"

< WTP
 
(19 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
== Background  ==
 
== Background  ==
  
[[Image:D1.jpg|frame|An example of a diagram created by the JPA editor]]  
+
The Web Services Definition Language (WSDL) 1.1[http://www.w3.org/TR/wsdl] has been used world-wide for the definition of Web Services ensuring well-defined, system-independent and interoperable contracts for reliable communication among different structures and organizations thus being the foundation of many industry specific solutions in the area of Service Oriented Architecture (SOA) and Business Process Management (BPM). The primary type-system, utilized for definition of data types within a WS interface as part of an operation signature, has been the XML Schema Definition (XSD)&nbsp;[http://www.w3.org/TR/xmlschema11-1/][http://www.w3.org/TR/xmlschema11-2/].&nbsp;As such the XML-based WSDL 1.1 and XSD artifacts are integral to the development of scalable business (A2C, B2B, etc.) solutions in distributed environment. In addition the XSD has become a prominent way to describe and validate XML documents in many use-cases, which are outside the scope of the Web Service provisioning one, e.g. data-base schema description, arbitrary XML documents validation, etc.&nbsp;<br>
  
The Web Services Definition Language (WSDL) 1.1[http://www.w3.org/TR/wsdl] has been used world-wide for the definition of Web Services ensuring well-defined, system-independent and interoperable contracts for reliable communication among different structures and organizations thus being the foundation of many industry specific solutions in the area of Service Oriented Architecture (SOA) and Business Process Management (BPM). The primary type-system, utilized for definition of data types within a WS interface as part of an operation signature, has been the XML Schema Definition (XSD)&nbsp;[http://www.w3.org/TR/xmlschema11-1/][http://www.w3.org/TR/xmlschema11-2/].&nbsp;As such the XML-based WSDL 1.1 and XSD artifacts are integral to the development of scalable business (A2C, B2B, etc.) solutions in distributed environment. In addition the XSD has become a prominent way to describe and validate XML documents in many use-cases, which are outside the scope of the Web Service provisioning one, e.g. data-base schema description, arbitrary XML documents validation, etc.&nbsp;  
+
Yet the complexity of the aforementioned XML dialects imply considerable difficulties and a steep learning curve when it comes to the definition / modification of WSDL 1.1 and XSD models. The currently existing tooling in the Eclipse WTP project, although full-featured in terms of specification-support, does not do much to hide this complexity and has been considered to be too technology-centric by the average SOA developer. In addition it seems to be distributed in several editors and views, which to some extent makes the navigation a bit harder.&nbsp;<br>
  
<br>
+
The feedback of a number of end-users, experienced in the development and maintenance of SOA/BPM-based applications, points out that they need a compact UI modeling toolset, which only gives them access to the selected set of the most commonly used entities, defined in the WSDL and XSD specifications, and makes it easier for them to quickly create and modify Web Service contracts and XSD artifacts. As part of it the early error detection and resolution as well as the rich refactoring capabilities seem to play a quite important role in the development process.<br>  
 
+
Yet the complexity of the aforementioned XML dialects imply considerable difficulties and a steep learning curve when it comes to the definition / modification of WSDL 1.1 and XSD models. The currently existing tooling in the Eclipse WTP project, although full-featured in terms of specification-support, does not do much to hide this complexity and has been considered to be too technology-centric by the average SOA developer. In addition it seems to be distributed in several editors and views, which to some extent makes the navigation a bit harder.&nbsp;
+
 
+
<br>
+
 
+
The feedback of a number of end-users, experienced in the development and maintenance of SOA/BPM-based applications, points out that they need a compact UI modeling toolset, which only gives them access to the most common entities defined in the WSDL and XSD specifications and makes it easier for them to quickly create and modify Web Service contracts and XSD artifacts. As part of it the early error detection and resolution as well as the rich refactoring capabilities seem to play a quite important role in the development process.  
+
 
+
<br>  
+
  
 
The Service Interface and Data Types editors are Eclipse form-based editors, which fully satisfy these requirements, providing easy-to-use, unified user interface and facilitating developers with quick and efficient application development in all WS and XSD related areas. In order not to restrict WSDL and XSD experts to the visual-editing capabilities of the tooling they also provide feature rich text-editing capabilities based on the WTP Structured Text Editor.  
 
The Service Interface and Data Types editors are Eclipse form-based editors, which fully satisfy these requirements, providing easy-to-use, unified user interface and facilitating developers with quick and efficient application development in all WS and XSD related areas. In order not to restrict WSDL and XSD experts to the visual-editing capabilities of the tooling they also provide feature rich text-editing capabilities based on the WTP Structured Text Editor.  
Line 23: Line 15:
 
== Scope  ==
 
== Scope  ==
  
The project is based on the [http://www.eclipse.org/proposals/graphiti/ Graphiti], which is also a proposed open source project. [http://www.eclipse.org/proposals/graphiti/ Graphiti] is a framework based on GEF and EMF for creating graphical diagram tools. The JPA editor project provides a graphical diagram editor as part of the Eclipse IDE, which allows the user to create, view and edit her business model as part of Java EE application project.  
+
The strategic goals of the editors are reflected by the high-level definition of their scope as defined below.  
  
Providing the JPA Diagram editor as integral part of the JPA Dali tools is in the scope of this proposal.
+
'''High Level Requirements'''
 +
*Modeling tool
 +
*Easy to use
 +
*Focus on developer productivity
 +
*Focus on business use-case
 +
*Technical details shall not be in the way of customers
  
Extending the existing Dali API is out of the scope of this proposal. The editor will use the Dali API, but it won’t change and/or extend it.  
+
'''In scope:'''
 +
*Provisioning of the means for simplified WSDL/XSD modeling
 +
*Reduction of the complexity, introduced by the WSDL 1.1 & XSD specifications
 +
*Hiding the pure technical aspects and providing meaningful defaults
 +
*Easy creation and re-use of existing XSD artifacts
  
This editor is targeted to Java EE (and particularly JPA) developers who use Eclipse and provides them with a graphical tool for visualizing and manipulating Java EE application business model.  
+
'''Out of scope:'''
 +
*Full modeling support of all aspects of the XSD & WSDL 1.1 specifications - only business-wise use-cases are supported 
  
 
== Description  ==
 
== Description  ==
  
'''Service Interface Editor'''
+
'''Service Interface Editor'''
 +
 
 +
A standalone, multi-page, form-based Eclipse editor for modification of WSDL 1.1 documents, which gives UI modeling access to selected features of WSDL 1.1 aiming to provide exceptional ease-of-use and to boost developers' productivity. It opens files with *.wsdl extension contained in the Eclipse workspace.[[Image:Service interface editor1.PNG|thumb|right|A WSDL 1.1 PortType being modeled with the Service Interface Editor]][[Image:Service interface editor2.PNG|thumb|The modification of in-line XSD schemas (embedded Data Types Editor)]]
 +
 
 +
'''Features'''  
  
 
*Service Interface modification  
 
*Service Interface modification  
Line 48: Line 54:
 
**XSD  
 
**XSD  
 
*Refactoring  
 
*Refactoring  
*Re-use of externally defined data types
+
*Re-use of externally defined data types<br>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
----
  
 
'''Data Type Editor'''
 
'''Data Type Editor'''
 +
 +
A standalone, multi-page, form-based Eclipse editor for modification of XSD documents, which gives UI modeling access to selected XSD entities aiming to provide exceptional ease-of-use and to boost developers' productivity. It is also embedded in the Service Interface editor and is utilized for UI modeling manipulations of the in-line XSD schemas, contained in a WSDL document. It opens files with *.xsd extension in the Eclipse workspace.
 +
 +
[[Image:Data types editor1.PNG|thumb|right|A XSD document being modified in the Data Types editor]]
 +
 +
[[Image:Data types editor2.PNG|thumb|right|The XSD source editing of an XSD artifact]]
 +
 +
'''Features'''
  
 
*Types creation, modification, inheritance  
 
*Types creation, modification, inheritance  
Line 65: Line 90:
 
*Re-use of externally defined data types
 
*Re-use of externally defined data types
  
The editor will avoid as much as possible opening of dialogs and wizards. The idea is to use simple operations as ‘drag-and-drop’ and ‘in-diagram’ direct editing (of text). The palette on the right side will allow the user to create entities and relations between them with ‘drag-and-drop’ and ‘point-and-click’. The user will be allowed to create from the palette new entities which inherit java.lang.Object, mapped superclasses or some other entities. The user will be able also to create XML defined entities. The JPA entities will be presented by rectangles and attributes will appear in these rectangles with their names and icons. On mouse over context buttons will appear providing basic operations. The operations which are not available through context buttons will be available through context menus.
+
<br>
  
{| border="0"
 
|-
 
| valign="top" |
 
[[Image:D3.jpg|frame|Context buttons for basic operations]]
 
  
| valign="top" |
 
[[Image:D6.jpg|frame|Additional operations available in context menus]]
 
  
|}
 
  
The editor will show validation markers and messages. The attributes will be separated in different compartments and any different entity or compartment can be collapsed or expanded.
 
  
The diagram will be persisted in a file in xml format.
 
  
A certain preference page on the global level and a property page on project level will allow the user to set some specific JPA diagram options.
 
  
The JPA details view will be integrated with the JPA Diagram editor. It would be possible to open it through a context menu command and it will reflect the selected diagram objects – entities or attributes.
 
  
{| border="0"
 
|-
 
| valign="bottom" |
 
[[Image:D4.jpg|frame|A fragment of the diagram presenting various visual features]]
 
  
| valign="bottom" |
+
----
[[Image:D5.jpg|frame|Some of the compartments or the whole entity can be collapsed]]
+
'''Screencast'''
  
|}
+
Watch the short introductory screencast:&nbsp;http://www.youtube.com/watch?v=iSmidd2692E
  
A miniature view will be available for opening through a context menu command and will allow the user to see a miniaturized image of the diagram.
 
  
It will be possible to create one (or more) diagrams per JPA enabled project. It will also be possible to create diagrams which unite entities from more than one project.
+
----
 +
'''When To Use'''
  
Since it’s possible for a diagram to become very big the user will be allowed to define logical areas in a diagram. It will be possible for the user easily to visualize/hide only those parts of a diagram which she/he wants to.  
+
The editors are to be used whenever the development productivity needs to be high and the modeling experience is not required to support all WSDL 1.1 and XSD entities, i.e. when the use-case would be similar to the Web Service interoperability, SOA and BPM ones.
 
+
   
The diagram will visualize the merged Java annotated classes/XML model and will allow the user transparently to modify the both.  
+
 
+
=== Screencast ===
+
 
+
Watch the short introductory screencast:&nbsp;http://www.youtube.com/watch?v=iSmidd2692E
+
  
 
== Relationship with Other Eclipse Projects  ==
 
== Relationship with Other Eclipse Projects  ==
  
The Service Interface &amp; Data Types Editors are form-based WSDL 1.1 and XSD editors based on Eclipse EMF, MDT XSD and WTP.  
+
The Service Interface &amp; Data Types Editors are multipage, form-based WSDL 1.1 and XSD editors based on Eclipse EMF, MDT XSD and WTP.  
  
 
They consist of  
 
They consist of  
Line 128: Line 133:
 
*Eclipse Web Tools Platform  
 
*Eclipse Web Tools Platform  
 
**WST WSDL Model  
 
**WST WSDL Model  
**WTP Source Editing<br>
+
**WTP Source Editing
 +
 
 +
 
 +
 
 +
'''Note:''' There are no proprietary/non-Eclipse dependencies.
 +
<br>
  
 
== Initial Contribution  ==
 
== Initial Contribution  ==
  
 
The initial code contribution will come from [http://www.sap.com/ SAP] where the Service Interface &amp; Data Types Editors have been originally developed.&nbsp;They will provide the functionality described in the '''Description''' section.<br>  
 
The initial code contribution will come from [http://www.sap.com/ SAP] where the Service Interface &amp; Data Types Editors have been originally developed.&nbsp;They will provide the functionality described in the '''Description''' section.<br>  
 +
The developed plugins can be found as attachements in the following bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=323696
  
 
== Committers  ==
 
== Committers  ==
Line 138: Line 149:
 
The following individuals are going to be proposed as initial committers to the project:  
 
The following individuals are going to be proposed as initial committers to the project:  
  
*Dimitar Tenev  
+
*Dimitar Tenev
 +
*Nevena Manova
 +
*Georgi Konstantinov
 +
*Dimitar Donchev
 
*Emil Simeonov
 
*Emil Simeonov
  
 
== Mentors  ==
 
== Mentors  ==
  
The following Architecture Council members will mentor this project:
+
* Kaloyan Raev
 
+
*TBD
+
  
 
== Interested Parties  ==
 
== Interested Parties  ==

Latest revision as of 08:29, 26 August 2010

The Service Interface & Data Types Editors project is a proposed open source project under the WTP Incubator 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 Webtools incubator forum.

Background

The Web Services Definition Language (WSDL) 1.1[1] has been used world-wide for the definition of Web Services ensuring well-defined, system-independent and interoperable contracts for reliable communication among different structures and organizations thus being the foundation of many industry specific solutions in the area of Service Oriented Architecture (SOA) and Business Process Management (BPM). The primary type-system, utilized for definition of data types within a WS interface as part of an operation signature, has been the XML Schema Definition (XSD) [2][3]. As such the XML-based WSDL 1.1 and XSD artifacts are integral to the development of scalable business (A2C, B2B, etc.) solutions in distributed environment. In addition the XSD has become a prominent way to describe and validate XML documents in many use-cases, which are outside the scope of the Web Service provisioning one, e.g. data-base schema description, arbitrary XML documents validation, etc. 

Yet the complexity of the aforementioned XML dialects imply considerable difficulties and a steep learning curve when it comes to the definition / modification of WSDL 1.1 and XSD models. The currently existing tooling in the Eclipse WTP project, although full-featured in terms of specification-support, does not do much to hide this complexity and has been considered to be too technology-centric by the average SOA developer. In addition it seems to be distributed in several editors and views, which to some extent makes the navigation a bit harder. 

The feedback of a number of end-users, experienced in the development and maintenance of SOA/BPM-based applications, points out that they need a compact UI modeling toolset, which only gives them access to the selected set of the most commonly used entities, defined in the WSDL and XSD specifications, and makes it easier for them to quickly create and modify Web Service contracts and XSD artifacts. As part of it the early error detection and resolution as well as the rich refactoring capabilities seem to play a quite important role in the development process.

The Service Interface and Data Types editors are Eclipse form-based editors, which fully satisfy these requirements, providing easy-to-use, unified user interface and facilitating developers with quick and efficient application development in all WS and XSD related areas. In order not to restrict WSDL and XSD experts to the visual-editing capabilities of the tooling they also provide feature rich text-editing capabilities based on the WTP Structured Text Editor.

Scope

The strategic goals of the editors are reflected by the high-level definition of their scope as defined below.

High Level Requirements

  • Modeling tool
  • Easy to use
  • Focus on developer productivity
  • Focus on business use-case
  • Technical details shall not be in the way of customers

In scope:

  • Provisioning of the means for simplified WSDL/XSD modeling
  • Reduction of the complexity, introduced by the WSDL 1.1 & XSD specifications
  • Hiding the pure technical aspects and providing meaningful defaults
  • Easy creation and re-use of existing XSD artifacts

Out of scope:

  • Full modeling support of all aspects of the XSD & WSDL 1.1 specifications - only business-wise use-cases are supported

Description

Service Interface Editor

A standalone, multi-page, form-based Eclipse editor for modification of WSDL 1.1 documents, which gives UI modeling access to selected features of WSDL 1.1 aiming to provide exceptional ease-of-use and to boost developers' productivity. It opens files with *.wsdl extension contained in the Eclipse workspace.
A WSDL 1.1 PortType being modeled with the Service Interface Editor
The modification of in-line XSD schemas (embedded Data Types Editor)

Features

  • Service Interface modification
  • Define namespace
  • Define operation
  • Define input/output/fault messages
  • Select type for input/output/fault
  • Documentation field
  • Embedded Data Types Editor for advanced Data Types manipulation of inline types
  • Source tab (WSDL 1.1 source modification)
  • In-place / document validations
    • WSDL 1.1
    • WS Interoperability
    • XSD
  • Refactoring
  • Re-use of externally defined data types







Data Type Editor

A standalone, multi-page, form-based Eclipse editor for modification of XSD documents, which gives UI modeling access to selected XSD entities aiming to provide exceptional ease-of-use and to boost developers' productivity. It is also embedded in the Service Interface editor and is utilized for UI modeling manipulations of the in-line XSD schemas, contained in a WSDL document. It opens files with *.xsd extension in the Eclipse workspace.

A XSD document being modified in the Data Types editor
The XSD source editing of an XSD artifact

Features

  • Types creation, modification, inheritance
    • Simple & structure
    • Elements
    • Attributes
  • Define type name & namespace
  • Define type cardinality and constraints
  • Documentation
  • Source tab (XSD source modification)
  • In-place / document validations
    • XSD
  • Refactoring (Renaming of all possible entities, Copy & Paste of all possible schema entities, etc.)
  • Re-use of externally defined data types







Screencast

Watch the short introductory screencast: http://www.youtube.com/watch?v=iSmidd2692E



When To Use

The editors are to be used whenever the development productivity needs to be high and the modeling experience is not required to support all WSDL 1.1 and XSD entities, i.e. when the use-case would be similar to the Web Service interoperability, SOA and BPM ones.


Relationship with Other Eclipse Projects

The Service Interface & Data Types Editors are multipage, form-based WSDL 1.1 and XSD editors based on Eclipse EMF, MDT XSD and WTP.

They consist of

  • Data Types Editor - a standalone XSD editor
  • Service Interface Editor - a standalone WSDL 1.1 editor embedding the Data Types Editor for providing capabilities of visualizing and manipulating inline XSD schemas and their underlying entities


Technical Dependencies

  • Eclipse Modeling Framework
    • Core
    • Model Query
    • Model Transaction
    • Validation Framework
  • Eclipse Model Development Tools XSD
  • Eclipse Web Tools Platform
    • WST WSDL Model
    • WTP Source Editing


Note: There are no proprietary/non-Eclipse dependencies.

Initial Contribution

The initial code contribution will come from SAP where the Service Interface & Data Types Editors have been originally developed. They will provide the functionality described in the Description section.
The developed plugins can be found as attachements in the following bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=323696

Committers

The following individuals are going to be proposed as initial committers to the project:

  • Dimitar Tenev
  • Nevena Manova
  • Georgi Konstantinov
  • Dimitar Donchev
  • Emil Simeonov

Mentors

  • Kaloyan Raev

Interested Parties

The following individuals, organizations, companies and projects have expressed interest in this project:

  • SAP
  • WTP (TBD)

Project Scheduling (Sample Proposal, i.e. TBD)

  • July - August 2010 – Project proposal
  • August - September 2010 – Infrastructure setup, initial contribution
  • October 2010 – First Milestone release
  • October 2010 – February 2011 – respond on community feedback, graduate in the Web Tools Platform
  • June 2011 – Release as part of the 2011 simultaneous release train

Back to the top