Skip to content

Import and export of workflow files from to EasySOA

Yoann Rodière edited this page May 3, 2012 · 38 revisions

This page is about technical solutions to provide seamless import/export of workflow files from/to EasySOA. The goals, extracted from EasySOA and workflow build process, are the following:

  • Architects shall be able to work on workflow files (business, technical and executable files) stored on EasySOA as easily as if they were stored locally.
  • When files are transfered to EasySOA, their content shall be reflected to [EasySOA Core model](Final soa model design). In particular, the folowing information shall be taken into account:
    • workflow context information (see user story #1 above)
    • business process hierarchy (which processes are called from a given process)
    • service use by (technical) workflows
  • Constraints:
    • The feature shall be available when using "vanilla" (not EasySOA-branded) editors
      • at least the solution should provide a "fallback", less user-friendly mode to vanilla editors
      • at best the solution should not require any change to the editors and thus be fully available to any editor
    • Workflow files shall be versioned, i.e. each past version of the files shall be available as well as the current version.
    • (optional) An offline mode should be available, while keeping the data's consistency -- to avoid spreading data on several storages.

Summary

Consistency Offline mode No changes to editor
Solution #1 + ? ++
Solution #2 ? ? ?
Solution #3 - ? --

Solution #1: WebDAV mountpoint

Idea

Mount a remote Nuxeo view on the user's filesystem. Then, editors work as usual: they are "fooled", since they don't "know" about EasySOA. Users could browse this filesystem to import or export the files at relevant places. To improve user-friendliness, we could add wizards in editors to create the files in the right folder (based on the mountpoint, project name, workflow name, and so on).

Details

Data transfer

Since mounting filesystems on one another is typically an operating system job, the client-side solution will depend on the user's OS.

  • On Windows, network drives
  • CHECKED On Linux, davfs with possibly other solutions, including graphical front-ends (in GNOME's Nautilus for example)
  • On Mac OS X, Finder seems to support WebDAV mounting natively.
  • On other platforms, well, who knows?

WebDAV seems supported in Nuxeo. There is some documentation about working with WebDAV in Nuxeo, too.

Working this way would probably induce some limitations ; for example, we may need to create "Workflow" items in Nuxeo before beeing able to create workflow diagrams at the right place.

Extraction to EasySOA Core model

TODO

Example

Nuxeo view (might be completely different):

.
└── projects
    ├── proj1
    │   ├── service1
    │   ├── service2
    │   ├── workflow1
    │   │   ├── doc1
    │   │   └── doc2
    │   └── workflow2
    │       ├── doc1
    │       └── doc2
    └── proj2
        ├── service1
        └── service2

User's FS:

.
├── my_docs
├── programs
└── work

Nuxeo view mounted on user's FS:

.
├── my_docs
├── programs
└── work
    └── projects
        ├── proj1
        │   ├── service1
        │   ├── service2
        │   ├── workflow1
        │   │   ├── doc1
        │   │   └── doc2
        │   └── workflow2
        │       ├── doc1
        │       └── doc2
        └── proj2
            ├── service1
            └── service2

Constraints

Compatibility with vanilla editors

TODO

Versioning

TODO

Offline mode

On Windows, the Briefcase ("Porte-documents" in french) enables working on cached versions of online documents. According to Alfresco's documentation, simply mounting a WebDAV space as a shared network drive would do the trick (this seems too simple, though).

On Linux and Mac OS, we still need to find a solution. TODO

JWT point of view

TODO

Solution #2: CMIS

Idea

Use CMIS technology to allow the editor to access Nuxeo.

Details

TODO: refine this idea. Note (mdutoo): better for integrating ECM into applications See also:

Data transfer

TODO

Extraction to EasySOA Core model

TODO

Example

TODO

Constraints

Compatibility with vanilla editors

TODO

Versioning

TODO

Offline mode

TODO

JWT point of view

TODO

JWT point of view

  • Apache Chemistry doesn't seem included in Orbit (see orbit CVS)

Solution #3: dedicated library

Idea

Insert a plugin in each editor, which uses a library performing file transfer with Nuxeo (import and export), which itself uses for example REST APIs. The plugins integrate the library in editors (with some UI modifications) and thus enable users to use remote files. For editors which can't be modified, Nuxeo's web interface is used to upload or download files.

Details

Data transfer

TODO

Extraction to EasySOA Core model

TODO

Example

TODO

Constraints

Compatibility with vanilla editors

TODO

Versioning

TODO

Offline mode

TODO

JWT point of view

TODO

Miscelaneous

Offline Nuxeo

In order to add offline support to any solution, we could set up a local instance of Nuxeo on each designer's machine, and keep it in sync with the central instance when the network is on.

It doesn't seem feasible, since an old version of Nuxeo's documentation mentions it but in read-only mode. I (fenrhil) could not find a matching page in the current documentation), though. The closest matches were:

Clone this wiki locally