r1 - 09 Apr 2003 - 09:01:00 - ChrisGreenhalghYou are here: myGrid wiki >  Mygrid Web  > WorkInProgress > LabBook > NetBeansLabBook

NetBeans as the basis for the LabBook

We (WP6) have selected NetBeans to use as the basis for the LabBook. This is an open source system for creating heavyweight desktop applications, although it is perhaps best known (out of the box) as a Java IDE.

For information on NetBeans see their web site and (recommended) 'NetBeans: The Definitive Guide' (O'Reilly).

Overview

The typical display is as shown.

The standard interface includes:

  • Menu bars and menus
  • Tool bar
  • Tabbed selection of 'workspaces' (the rest of the window)
    • Tabbed selection of hierarchical 'explorers'
    • Tabbed set of Standard property viewer/editors
    • Tabbed (or MDI) area for editing things
    • Tabbed area for output/runtime information

We plan to use the same structure. For IF-4 there will be a single workspace, visually similar to this, which will support browsing and in-silico experiments. Beyond IF-4 there is the option to add other specialised workspaces, e.g. for (bio)project management.

Filesystems

The first major extension point for NetBeans is the Filesystem, which provides a file-system API to access data external to NetBeans. For myGrid we have identified four condidate filesystems:

  • MIR - for browsing and updating the MIR (planned for IF-4 - Kevin)
  • Notification - for subscribing to and viewing notifications (planned for IF-4 - Mena)
  • ServiceDirectory - for browsing service directories (NOT planned for IF-4 - WP2??)
  • Ontology - for browsing ontology services (NOT planned for IF-4 - WP4??)

Creating a filesystem provides basic access through NetBeans. The filesystem identifies (virtual) file types using MIME types, and every file has an arbitrary set of (potentially editable) properties.

The filesystem wraps the stateful elements of the system, but is not primarily concerned with providing an ideal structure for the end user.

We suggest that these be based on the Mail filesystem example in 'NetBeans: The Definitive Guide' (O'Reilly).

#MIRFilesystem

MIR Filesystem

Hierarchy:

  • All Information Repositories
    • Specific Information Repository
      • Thing (name = externalURI)

Note the flat internal structure - various internal hierarchical views can be imposed by different Node-based views (see below).

Note: 'All Information Repositories' does not imply (a) discovery or (b) that there is normally any more than one; it provides an invariant starting point to root the hierarchy in.

Notification Filesystem

Hierarchy:

  • All Notification Services
    • Specific Notification Service
      • Topics
        • topic
      • Subscriptions
        • subscription
      • Notifications
        • notification

Service Directory Filesystem

Hierarchy:

  • All Service Directory Views
    • Specific Service Directory View
      • Service
        • PortType?
          • Operation

See notes under [#MIRFilesystem]

Ontology Filesystem

Hierarchy:

  • All Ontology Services
    • Specific Ontology Service
      • Specific Ontology
        • Concept
        • Property? Axiom?

See notes under [#MIRFilesystem]

Node-based Explorer extensions

For more customised interfaces (e.g. active icons indicating status, more flexible hierarchical organisations, more understandable names) one must also create custom Node types to represent the relevant things (including virtual files also other abstract organisational entities). In general, there would be benefit in creating custom Node types for all of the above filesystems and their normal content types. However, for IF-4 we will prioritise:

  • A hierarchical Node-based view over the MIR filesystem with the form User/WorkContext/.../DataThing, where the hierarchy is derived from the standard relation 'wasCreatedIn' that MIR3 creates for all DataThings?, WFDefinitions and WFInstances.

Editors and viewers

There is an extensible Editor/viewer framework which includes as standard various text, XML and image editors. For the kinds of use cases that have been discussed for myGrid we can identify at least the following editors that might also be added:

  • Sequence with annotations (important for GravesDiseaseScenario - which one, and who will integrate it?)
  • Protein structure (external RasMol? viewer? still needs appropriate triggering glue adding to NetBeans)
  • WFDefinition (can be edited as XML)
  • WFInstance, i.e. WF provenance (can be viewed as XML)

Advanced editors and viewers

NetBeans allows a tight integration between custom Nodes in the Explorer which show the thing being edited, including internal structure, and other editors. However this level of sophistication is likely to be post-IF-4.

Activities and Wizards

NetBeans has a flexible wizard framework. For IF-4 we prioritise the following wizard(s):

  • Create a new WorkContext? (i.e. project or experiment) (may be done using templates - to be determined)
  • Import data (may be done using templates - to be determined)
  • Add simple annotation (may be done using templates - to be determined)
  • Find/choose a WFDefinition, choose inputs, configure parameters and enact it.

Other options include:

  • Separated stages of the above (find, tailor, enact)
  • Create a WorkContext? (experiment) summary report

Branding and Packaging

NetBeans supports customisation of text and icons, to create a myGrid-branded version. We assume that this is required.

NetBeans also supports creation of custom distributions, excluding irrelevant functionality. We assume that this is required.

Open Issues

  • One thorny issue to be resolve is the MIR is intended to preserve data immutably. So how does the user and IDE 'see' (e.g.) editing a WFDefinition or DataThing??
    • One possibility is for new things (and just-copied things) to be held mutably within the NetBeans MIR Filesystem, and to only write them to the MIR when the are explicitly 'committed' (which they must be before they can be used).

-- ChrisGreenhalgh - 09 Apr 2003

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by myGrid wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding myGrid wiki? Send feedback