Yulup Specification

Thomas Comiotto

unicom Online (University of Zurich)

Michael Wechner

Wyona

2006-05-07

Revision History
Revision 1.3 2006-05-07 AW
Cleaned up use cases and feature list. Restructured contents to make the document more readable.
Revision 1.2 2006-05-03 AW
Added variant WEB to component FRONTEND. Revised architecture following propositions by Thomas Comiotto.
Revision 1.1 2006-05-02 AW
Project decomposition and features.
Revision 1.0 2006-04-28 AW
First initial draft.

Abstract

Specification of the Yulup project.


Table of Contents

1. Use Cases
1.1. Using Yulup as a Browser
1.2. Using Yulup as an Editing Tool
1.3. More than XML
2. Project Decomposition
3. Requirements
3.1. Functional Requirements
3.1.1. Front End Component (FRONTEND)
3.1.1.1. Browser Integrated Variant (BROWSER)
3.1.1.2. Standalone Variant (STANDALONE)
3.1.1.3. Web-based Variant (WEB)
3.1.2. Back End Component (BACKEND)
3.1.3. Remote Connector Component (CONNECTOR)
3.2. Non-Functional Requirements
4. Open Issues/To be discussed
5. Reasoning

Yulup should allow plain/semi-structured text editing with a "common" formatting, which means no XML Schema attached.

The decomposition serves the purpose of partitioning the project into implementable features. Note that a single usecase may need support from the front end as well as the back end, therefore a usecase may consist of several features in different components. It follows that in order to implement a usecase, features in the front as well as the back end must be implemented; the implementation though only has to be done in one variant of a component to have the usecase working for this variant. Therefore, the variants of a component are independent.

Components and Variants

The project consists of three components: the front end, the back end, and a connector component. The front end component is divided into three variants: the editor integrated in a web browser, as a standalone editor, and a web-based, browser-independent variant. The back end can be run either locally on the same client as the front end, or on a remote host if the connector component is available.

The front end component is responsible for the handling the view. FRONTEND performs tasks like rendering the document, supplying user interaction facilities, etc. Note that all thre front ends can work with either a local BACKEND or a remote BACKEND.

Note that the FRONTEND UI is separated from the document views entirely. This makes it possible to implement the UI using either XUL (for Mozilla Platform based browsers), JavaScript or e.g. Flash.

Common Feature Set

The back end component comprises the controller and the model. BACKEND contains the application logic and performs tasks like text insertion/deletion, ID tagging, XSLT processing, validation, etc. BACKEND runs either locally on the client, or remote on a different network host if a remote connector (CONNECTOR) is available.

BACKEND is also responsible for discovering and instantiating a suitable CONNECTOR, if the back end runs on a remote host. This must be completely transparent to FRONTEND.

Feature Set

  • Should we keep the source editing mode simple and stupid (i.e. only have the trivial operations of add/edit/delete of text nodes, elements and attributes), or should we add features like link insertion, etc.?

  • Implementation language (Java (also interesting for SERVER), C++, etc.)

  • Amount of reuse (Etna project, Mozilla Platform, etc.)

  • License (GPL, GPL+Commercial, LGPL, MPL, etc.)

  • Date of going public

  • Branding

Why do we want to use the Mozilla platform for Yulup:

  • No gap between browser and editing tool (e.g. OpenOffice, ...)!

  • Platform independence (Windows, Linux, MacOS, UNIX, ...)!

  • Offline/Online editing ...