Technical design for
SOOM
SOOM Toolbox Analysis
Version 1.0 2009-04-03
SOOM
SOOM Toolbox Analysis Technical design
Project Number SOOM-2009-01
Project Title Service Oriented Object Management
Document Reference
Title SOOM Toolbox Analysis Date 2009-04-03
Document Name SOOM - Toolbox Analyzis V1.doc Version 1.0 draft
final ;
Restrictions public internal ; restricted ; :
Distribution AIT internal
Authors AIT Team
Abstract This manual describes the internal management of the SOOM project.
Keywords SOOM, SOA, Web Services, SCRUM, Project Management
Document Revisions
Version Date Author(s) Description of Change
Table of contents
1
Introduction ...4
2
Non functional requirements ...5
2.1 Costs... 5 2.2 Market share ... 5 2.3 Support / Community ... 5 2.4 Maintenance... 5 2.5 Availability ... 5 2.6 Performance... 5 2.7 Security. ... 5 2.8 Compatibility ... 6 2.9 License ... 6
3
Components that need to be handled ...7
3.1 XForm natives ... 7
3.2 Common application functionality...10
3.3 SOOM specific components...11
4
User Stories... 13
4.1 View editor...13
4.2 XComponents properties ...13
4.2.1 Data property...13
4.2.2 Position and size depending on layout ...13
4.2.3 History ...13 4.2.4 Language ...13 4.3 Nested XComponents ...14 4.4 Model editor ...14 4.5 Control editor ...14 4.6 Help ...14
4.9 User rights ...14
4.10 Generate forms from model...14
4.11 Platform independent ...14 4.12 Deployment...15
5
Tested tools... 16
5.1 Overview ...16 5.2 Visual-Designer (IBM-Alphaworks) ...16 5.2.1 Installation ...16 5.2.2 Summary ...17 5.3 Intalio ...17 5.3.1 Installation ...17 5.3.2 Summary ...175.4 Orbeon Form Builder ...18
5.4.1 Installation ...18 5.4.2 Summary ...18 5.5 Chiba ...18 5.5.1 Installation ...18 5.5.2 Summary ...18 5.6 Alfresco ...19 5.6.1 Installation ...19 5.6.2 Summary ...19 5.7 Nuxeo...19 5.7.1 Installation ...19 5.7.2 Summary ...19
6
Conclusion ... 21
I.
Glossary ... 22
1 Introduction
This document covers the requirements for the SOOM GUI Development Toolbox. What tools have been tried out and what requirements are met by those tools, as well as a list of functional and non functional requirements for the GUI tools are described.
2 Non functional requirements
This chapter describes the non functional requirements for the GUI development tools.
2.1 Costs
The tools have to be free.
2.2 Market share
No constrains concerning the market share are set.
2.3 Support / Community
The product has to be in active development or must not be older than one year in case XForms 1.1 is implemented.
2.4 Maintenance
In case new XComponents are needed, they either can be created using existing components or need to implemented for free.
2.5 Availability
The designer as local application has to guarantee a 99% uptime. As a web based product, the designer can be offline from 23:00 to 05:00 from Monday to Sunday.
2.6 Performance
The time to respond to mouse clicks must be under 500 milliseconds. Every action that will take longer than one minute has to be displayed on the screen. This is the case for saving, loading, generating and deploying activities. Nevertheless, all these operations shall not take longer than three minutes. In case of deployment, this time can extend depending on the size of the deployed artifacts. It has to be possible to edit up to ten documents without exceeding 15% of CPU usage on a 2Ghz Dual Core and using up to 512 MB memory. Theses values may be tripled for the short time of generating documents for the sake of faster generation times.
2.7 Security.
2.8 Compatibility
There has to be the possibility to export XForm compliant documents as well as XML schema files. The GUI designer has to run on Windows and Linux. It can either be a web based product or another tool.
SVN compatibility shall be available.
2.9 License
The license of the product must consider redistributing the product under a different license and must be commercially usable. The source code of the product must not be available but one should be allowed to change the source if desired.
3 Components that need to be handled
This chapter is separated into three categories. XForm native components, common application components and SOOM specific components. Each category has a different origin but each component needs to be handled the same.
The following table describes the basic Properties for each component. XComponent
Description A component that assembles several components into groups Properties • class field: style information
• position: x,y of surrounding component • id: an unique identifier of the component • width: width of the compound
• height: height of the compound
• show language selection: displays a language selector for this component which overrides child languages on change
• show history information: displays a button which displays the change history of a component. this will also display child
• components: a set of components
• data [optional]: a reference to a model element, child elements can refer to
• constrains [optional]: when data is referenced, constrains to this data should be
• Layout: The arrangement of the components within the compound: float, block, absolute
• Help: Help text for the component
Based on • -
3.1 XForm natives
XForms has a variety of built in components that need to be supported by the designer. The components of the following categories are assemblies of the XForm native components.
Label
Description A simple text field Properties • Single text String
Based on • XComponent
Input
Description A simple text field to enter text
Properties • read-only: is this field read-only • data: reference to a data field Based on • XComponent (Label?)
Select
Description A combo box or set of radio buttons to select one record Properties • read-only: is this field read-only
• data: reference to a data field • option*: A list of options for the field • display type: radio or combo box Based on • XComponent (Label?)
Mulitselect
Description A list box or set of checkboxes to select more then one Properties • read-only: is this field read-only
• data: reference to a data field • option*: A list of options for the field • display type: list box or checkboxes Based on • XComponent (Label?)
Checkbox
Description A checkbox
Properties • read-only: is this field read-only • data: reference to a data field • value: the value when selected Based on • XComponent (Label?)
Group
Description A styled group of components Properties • Label: a label
Based on • XComponent (XComponent *)
Switch
Description displays one of several groups at a time
Properties • initial active: the group that will be displayed on startup • add choice: adds a new Group
• remove choice: deletes a Group Based on • XComponent (XComponent *)
Button
Description A button that can initialize actions (submissions)
Properties • on click action: what submission will be called when the button is clicked
Repeatable
Description A repeatable container.
Properties • data: reference to the form data • show header: displays a header
• show add/remove on each line: displays the show, remove buttons on each line
• show add/remove in header: displays additional add/remove buttons in the header when it is shown.
• min: minimum number of repetitions • max: maximum number of repetitions
Based on • XComponent (XComponent (Label*), XComponent (XComponent*))
Upload
Description A upload container.
Properties • data: reference to the form data • filetype: allowed filetypes Based on • XComponent (Label?)
3.2 Common application functionality
These components are mostly based on mockups and applications that have been created using different kinds of programming languages and environments like Java (Swing, SWT) or HTML (with Javascript support)
Tab
Description Tabs with a tab pane. Since the tab pane consists of separated components, they can be edited by themselves or via delegates
Properties • orientation of the tab pane: top, bottom, left, right
• add tab: adds a Group to the Switch and a Button to the tab pane • remove tab: deletes the Group and the associated Button
Predictive
Description A textbox that offers a selection of context sensitive data Properties • content provider: a service where the data derives from
• context: the context in which the text stands
• context display: how the context shall be displayed. hide (not editable), multiselect (a select box to choose from), toggle(a button to show/hide the multiselect), own (opens a new dialog to choose) • context setting: the closable values for the context
• size: size of the list
• data: reference to the forms data Based on • XComponent (Label?)
3.3 SOOM specific components
Some additional components specific for SOOM are as following Lookup
Description An Input with a Button to Open a search window to select data from. It is much like the Predictive component but opens an own window to select the data from.
Properties • content provider: a service where the data derives from
• context display: how the context shall be displayed. hide (not editable), multiselect (a selectbox to choose from), toggle(a button to show/hide the multiselect), own (opens a new dialog to choose)
• context setting: the closable values for the context • data: reference to the forms data
Classification
Description An Input with a Button to Open a thesaurus search window to select data from. Data will be displayed as a hierarchy.
Properties • content provider: a service where the data derives from
• context display: how the context shall be displayed. hide (not editable), multiselect (a selectbox to choose from), toggle(a button to show/hide the multiselect), own (opens a new dialog to choose) • context setting: the closable values for the context
• data: reference to the forms data Based on • XComponent (Input, Button, Group)
4 User
Stories
This section covers user stories that describe the handling of the GUI designer.
4.1 View editor
The tool has to provide the form designer with the possibility to drag and drop or click and place XComponents onto a canvas or into other XComponents located on the canvas.
The XComponents must be resizable and freely movable within the bounds of the surrounding XComponent or canvas.
A copy and paste functionality to quickly duplicate XComponents and move them from one form to the other should be supplied y the system as well as undo/redo of at least 5 activities.
4.2 XComponents properties
To change the properties like data, class, context setting and so on, the tool must provide a separate editor or an inline feature for the user.
For various properties, this editor shall be context sensitive.
4.2.1 Data property
The data property shall be aware of the surrounding components data reference and provide a pre selection of relevant items within the XML node.
4.2.2 Position and size depending on layout
float: The components will be arranged next to each other using the x, y parameters as margins.
block: The components will be arranged underneath each other using the x, y parameters as margins.
absolute: The components will be positioned according to the x,y coordinates within the surrounding component.
Other layouts should be created with nested groups. The dynamic layout like float and block are no must criteria.
4.2.3 History
The history functionality shall override child components on change
4.3 Nested XComponents
Since many XComponents are assembled using other components, it should be possible to edit nested XComponents to either move labels or change button styles.
4.4 Model editor
The model (fxorm:instances) must be editable and not hard linked to the view. Changes at the model may rise warnings or errors (depending on xform specification) in the view or control editor.
4.5 Control editor
As part of XForms, the control is an editor based on submissions and actions. An implementation of the XForms 1.1 specification must be available in this editor.
4.6 Help
Links to the XForms 1.1 specification should be available at appropriate parts of the toolset. The model editor must have at least one link to the instance section of the specification. The control editor must at least have a link to the events section of the specification.
4.7 Creating own XComponents
The designer tool must provide the user with the possibility to store and reuse assembled XComponents. The user can name the new component and put it into a library. The library must provide categorization functionality.
4.8 Styling information
The designer tool must provide the possibility to place images just like XComponents. The possibility to load user specific cascading style sheets that will affect the appearance of the XComponents is optional.
4.9 User rights
The possibility to set user specific rights in a form is optional.
4.10 Generate forms from model
Based on XML documents and fragments, XComponents or whole Forms should be generated by the designer tool. During the generation process, the usage of specific XComponents for certain nodes shall be configurable by XPath.
4.12 Deployment
There is no special requirement concerning the deployment of the forms. Own runtime environments are sufficient as long as XForm compliant forms can be saved.
5 Tested
tools
This chapter describes the tested tools and how the fit into
5.1 Overview
Requirement DesignerVisual Intalio Orbeon Form
Builder Chiba Alfresco Nuxeo
Non functional requirements
Costs free free free free free free
Market Share - - -
Support - Comm. Comm. Comm. Comm. -
Maintenance 04/2006 01/2009 08/2008 12/2008 10/2008 02/2009
Availability X X X X X X
Security √ √ √ √ √ √
Performance √ √ √ - - -
Compatibility √ X X X X X
License IBM Intalio LGPL liberal BSD and Apache 2 GPL LGPL, EPLand / or GPL XComponents Available Properties √ √ X - - - XForm natives 10/10 9/10 9/10 - - - Common 0/2 1/2 0/2 - - - SOOM 0/2 0/2 0/2 - - - User Stories Editor √ √ √ - - - Special Properties 0/4 0/4 0/4 - - - Nested √ √ X - - - Model Editor √ X X - - - Control Editor √ X X - - - Help √ X X - - - Own XComponents X X X - - - Styling X X X - - - User Rights X X X - - - Generator √ X X - - - Platform √ √ √ - - - Deployment √ √ X - - -
Table 5-1Requirements overview
5.2 Visual-Designer (IBM-Alphaworks) This is the eclipse plugin from IBM
5.2.1 Installation
• Download Eclipse 3.2 or better
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.4.1-200809111700/eclipse-SDK-3.4.1-linux-gtk.tar.gz [Urldate 02/16/2009]
• Install WTP from Eclipse Update Site
• Install Visual Designer Plugin (Following Features From Eclipse technologies)
http://awwebx04.alphaworks.ibm.com/ettktechnologies/updates [Urldate 02/16/2009]
o Visual Designer o Generator
o Compound XML Document
5.2.2 Summary
The update site is not available all the time. Username and password is required to get the plugin. Creating a new form is not possible due to a NAMESPACE error. The license can be found at
http://www14.software.ibm.com/cgi-bin/weblap/lap.pl?la_formnum=&li_formnum=L-APAL-5L22XX&title=XML%20Forms%20Generator. The possibility to export XForms for different formats is plus. Unluckily, the source code is not available and the exception can not be checked. The properties editor is available but looks pretty awkward. The basic XForm elements can be created but tests on other features could not be performed due to the missing save feature.
5.3 Intalio
The form designer is shipped as a bundle with the Intalio BPMS|Client
5.3.1 Installation • Download o http://bpms.intalio.com/docman/downloads/intalio-designer-5.2.1-for-linux/download.html [Urldate: 02/17/2009] o http://bpms.intalio.com/docman/downloads/intalio-server-5.2.1/download.html [Urldate: 02/17/2009]
• Extract Server and Designer
• Install JRE 1.5 (Problems occurred while starting the server with openjdk6)
o Set JRE_HOME environment variable • start server (bin/startup.sh)
• start designer
• To stop the server use system/manager as username/password
5.3.2 Summary
The Output of XForms is possible but it cannot generate a form from a model. Also, no Buttons can not be added to the canvas.
5.4 Orbeon Form Builder
Orbeon is the XForms application used by Intalio. The created a own forms editor.
5.4.1 Installation
• Download Jetty 6.1.14 from http://dist.codehaus.org/jetty/jetty-6.1.14/ [Urldate: 02/17/2009]
• Download Orbeon 3.7 beta 1 from http://www.orbeon.com/forms/download [Urldate: 02/17/2009]
• Extract Orbeon and extract orbeon.war into jetty/webapp/orbeon directory. If the orbeon.war is moved as is, the forms cannot be saved.
• Start jetty (java –jar start.jar)
• Stop jetty by terminating the terminal (Ctrl-C)
5.4.2 Summary
Orbeons Form Builder is at an alpha stage but is very user friendly. Most disappointing is the missing repeatable feature. The created forms follow a specific Orbeon XForm structure and therefore export/import as XForms 1.1 is not possible. Although Orbeon can run almost any XForm, the For builder is not fully functional yet.
5.5 Chiba
Chiba Web is a server-side XForms implementation, coming with a JavaScript layer, XForms 1.1 support, localisation, XPath 2.0 and more.
5.5.1 Installation
• Download Jetty 6.1.14 from http://dist.codehaus.org/jetty/jetty-6.1.14/ [Urldate: 02/17/2009]
• Download Chiba Web 3 from
http://sourceforge.net/project/showfiles.php?group_id=20274&package_id=154662
[Urldate: 02/18/2009]
• Extract chiba.war into jetty/webapp/chiba directory. • Start jetty (java –jar start.jar)
5.6 Alfresco
5.6.1 Installation
• Download Alfresco 3 Labs Edition from
http://wiki.alfresco.com/wiki/Labs_3_Final_download_files [Urldate: 02/18/2009] • Run Setup procedure
• Start server (./alfresco.sh start)
• Login at http://localhost:8080/alfresco or http://localhost:8080/studio with admin/admin as username/password
• Stop server (./alfresco.sh stop)
5.6.2 Summary
Alfresco does not provide an editor so far (at least it cannot be found). It supports XForms as rendering engine for their forms but uses Chiba and Orbeon (currently in development) for this task. The Web Studio is just for designing own Websites, not XForms.
5.7 Nuxeo
Nuxeo is lilke Alfresco a ECP. Until now, no XForms editor has been found.
5.7.1 Installation
• Download Nuxeo EP from http://www.nuxeo.org/static/NuxeoEP/nuxeo-ep-5.2.0.m4-installer-1.jar [Urldate: 02/19/2009]
• Download Nuxeo RCP from http://doc.nuxeo.org/xwiki/bin/view/Main/Downloads [Urldate: 02/19/2009]
• Run Nuxeo EP java installer (java –jar nuxeo.jar)
• Follow http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-specific_IP_binding-configuration.html [Urldate: 02/19/2008] to set IP binding
• Extract Nuxeo RCP
• Start Nuxeo Server (./bin/run.sh)
• Login at http://localhost:8080/nuxeo with Administrator/Administrator as username/password
• Start Nuxeo RCP (./nuxeo-rcp) • Stop server with Ctrl-C
could not be started with a actual release of eclipse. The Nuxeo RCP could not be used as well although IP binding and IPv4 was set. The connection was constantly refused.
6 Conclusion
Most of the tested products did not provide any form of XForms editor but have a runtime for XForms. Chiba and Orbeon are used within other products like Alfresco whereas Chiba Orbeon has a build in web flow engine (XPL1) which is a subset of the soon to become standard XProc2. Chiba on the other hand is slicker. Orbeons Alpha version of the designer can be handled very well but misses the very important repeat feature which, on the other hand can be displayed by Orbeon XForms runtime. Both Orbeon and Chiba need some customizations to the XForm to run smoothly which does not break the XForms compatibility.
The most convincing editor would have been the Visiual Deesigner by IBM but the projects seems to be on hold. Since it is not possible to save changes and generated XForms can sometimes not be opened or they have errors render the product unusable as well.
Especially the SOOM specific components Lookup and Classification as well as the History and Language feature are not available in any evaluated product and therefore need to be created by the designers needs. The Language feature is somehow build in for labels in Orbeon.
Intalio is the next best choice but does not provide the ability to edit Control or Model features within the XForm.
The final statement would be that none of the evaluated products is capable of providing the functionality needed by SOOM GUI designers.
I. Glossary
SOOM Service Oriented Object Management
SOOM Forms A mockup for XComponents to generate XForm applications
XComponents A term for components used to build up XForms within SOOM Forms.
XForms XForms is an XML application that represents the next generation of forms for the Web. XForms is not a free-standing document type, but is intended to be integrated into other markup languages, such as XHTML or SVG. An XForms-based web form gathers and processes XML data using an architecture that separates presentation, purpose and content