Heiko Braun <hbraun@redhat.com>
            Mar 2010
Agenda

•   What is it?
•   What can it be used for?
•   Why should I care?
•   Building blocks
•   Project status
What is it?
Workspaces and tools
•   Workspace is a collection of tools
•   Tools represent anything you like
    •   Build in GWT
•   Workspaces is UI framework ...
•   ... but also a development environment
    •   API, Sandbox, Repository


                                             4
UI Framework
•   Foundation to which to deploy your tools
•   Provides loading, initialization and access to
    tools
•   Consists of common, shared API and
    services
    •   Authentication, Logging, Exception
        Handling, etc


                                                     5
Development environment
•   Not just another GWT library

•   Provides complete sandbox:
    - GWT SDK installation
    - Build environment

•   Ways to distribute and integrate tool implementations:
    - Versioning
    - Repository

•   Aims at:
    - Low barrier entry point
    - Collaboration

                                                             6
What can it be used for?
Use cases
•   Building rich client applications
•   Management functionality beyond operational
    level
•   Few constraints on tool implementation
•   High expectations on:
    - User experience
    - Interactivity


                                                  8
i.e Drools Guvnor




> http://www.jboss.org/drools/drools-guvnor.html
                                                   9
i.e Riftsaw Console




   > http://http://www.jboss.org/riftsaw   10
Why should I care?
Considerations

•   Tool composition at various stages
    - sandbox, project, product
•   Different feature set, maturity and target
    audience
•   Tool interplay important part of the strategy



                                                    12
Composition and
            interplay
•   i.e. Guvnor and BPM Console
    •   Distinct tools on a project level
    •   Composition at product level
•   Or simply re-use of tools in other projects
    •   Picketbox Identity Management tools



                                                  13
Building blocks
Workspace sandbox

•   Low barrier entry point

    •   Java knowledge, IDE, API Docs

•   Environment to build, test and distribute your tools

    •   Maven archetype

    •   Auto GWT setup

    •   Includes necessary libraries


                                                           15
Sandbox example
(1) mvn archetype:generate [...]

(2) Define value for groupId: : org.picketbox.console
    Define value for artifactId: : IdentityManagement
    Define value for version: 1.0-SNAPSHOT
    Define value for package: org.picketbox.console

(3) cd IdentityManagement
    mvn gwt:run

(4) Point your browser to http://localhost:xyz

(5) Open IDE and start hacking




                                                       16
Workspace API

•   Reduction of boilerplate
•   Use to wire tools within a workspace
•   Split between
    - user (building tools)
    - framework (extending workspace)



                                           17
User API Sample




                  18
Federation of tools
•   Leverage central repository

    •   Maven in this case

•   Mix and match:

    •   Project vs. Product

    •   JBoss vs. 3rd Party

•   Foster re-use and extendability

•   Divide and conquer


                                      19
Status and roadmap
Status

•   Released 1.0 in March 2010
    •   Baseline for tool development
    •   Ready to get your hands on
•   Already used in
    - Riftsaw, jBPM and Drools Flow
•   8 weeks release cycle

    > http://jboss.org/errai
                                        21
Roadmap

•   Focus on SOA-P requirements, i.e.
    •   Guvnor/ BRMS migration
    •   Picketbox management tools
    •   Apache JUUDI console



                                        22
Q&A

Errai Workspaces

  • 1.
  • 2.
    Agenda • What is it? • What can it be used for? • Why should I care? • Building blocks • Project status
  • 3.
  • 4.
    Workspaces and tools • Workspace is a collection of tools • Tools represent anything you like • Build in GWT • Workspaces is UI framework ... • ... but also a development environment • API, Sandbox, Repository 4
  • 5.
    UI Framework • Foundation to which to deploy your tools • Provides loading, initialization and access to tools • Consists of common, shared API and services • Authentication, Logging, Exception Handling, etc 5
  • 6.
    Development environment • Not just another GWT library • Provides complete sandbox: - GWT SDK installation - Build environment • Ways to distribute and integrate tool implementations: - Versioning - Repository • Aims at: - Low barrier entry point - Collaboration 6
  • 7.
    What can itbe used for?
  • 8.
    Use cases • Building rich client applications • Management functionality beyond operational level • Few constraints on tool implementation • High expectations on: - User experience - Interactivity 8
  • 9.
    i.e Drools Guvnor >http://www.jboss.org/drools/drools-guvnor.html 9
  • 10.
    i.e Riftsaw Console > http://http://www.jboss.org/riftsaw 10
  • 11.
  • 12.
    Considerations • Tool composition at various stages - sandbox, project, product • Different feature set, maturity and target audience • Tool interplay important part of the strategy 12
  • 13.
    Composition and interplay • i.e. Guvnor and BPM Console • Distinct tools on a project level • Composition at product level • Or simply re-use of tools in other projects • Picketbox Identity Management tools 13
  • 14.
  • 15.
    Workspace sandbox • Low barrier entry point • Java knowledge, IDE, API Docs • Environment to build, test and distribute your tools • Maven archetype • Auto GWT setup • Includes necessary libraries 15
  • 16.
    Sandbox example (1) mvnarchetype:generate [...] (2) Define value for groupId: : org.picketbox.console Define value for artifactId: : IdentityManagement Define value for version: 1.0-SNAPSHOT Define value for package: org.picketbox.console (3) cd IdentityManagement mvn gwt:run (4) Point your browser to http://localhost:xyz (5) Open IDE and start hacking 16
  • 17.
    Workspace API • Reduction of boilerplate • Use to wire tools within a workspace • Split between - user (building tools) - framework (extending workspace) 17
  • 18.
  • 19.
    Federation of tools • Leverage central repository • Maven in this case • Mix and match: • Project vs. Product • JBoss vs. 3rd Party • Foster re-use and extendability • Divide and conquer 19
  • 20.
  • 21.
    Status • Released 1.0 in March 2010 • Baseline for tool development • Ready to get your hands on • Already used in - Riftsaw, jBPM and Drools Flow • 8 weeks release cycle > http://jboss.org/errai 21
  • 22.
    Roadmap • Focus on SOA-P requirements, i.e. • Guvnor/ BRMS migration • Picketbox management tools • Apache JUUDI console 22
  • 23.