See the main page for a Cress overview
The current version of Cress is 5.0, dated 14th January 2014.
Cress is an acronym for Communication Representation Employing Systematic Specification. Cress allows graphical description of a wide variety of services such as in data communications/telecommunications, but Cress is not limited to this. The approach allows services to be described graphically as (work)flows of activities. Cress diagrams are automatically translated into formal languages for rigorous analysis and verification, and are also automatically translated into implementation languages for deployment and validation. This page is an extract of the full manual.
Cress is written using portable and widely used languages (Perl and Java). It can be extended by a developer for other kinds of services that can be characterised by activity flows. Cress supports the following:
The aim of Cress has been to make service design as easy as possible without requiring specialist development knowledge. From the user point of view, Cress simplifies service creation to drawing diagrams, clicking buttons and defining a few tool parameters. All key functions of Cress can be controlled from the Chive diagram editor.
From the developer point of view, Cress is a complex but comprehensive toolset. It effectively supplies multiple compilers rolled into one as it supports three diagram editors, six target languages, and nine application domains. A relevant quote for Cress might be:
The following main tools are provided in the Cress toolset:
Tool | Purpose |
---|---|
cadp_annotate | annotate Lotos for use by CADP |
cress_bpel | translate Cress diagrams to BPEL |
cress_check | check Cress diagrams | cress_cpl | translate Cress diagrams to CPL |
cress_create | create BPEL service archives |
cress_deploy | deploy BPEL service archives |
cress_expand | expand macros in Cress diagrams |
cress_lola | clean up Lola (Lotos) simulation traces |
cress_lotos | translate Cress diagrams to Lotos |
cress_realise | specify/implement/deploy Cress diagrams |
cress_sdl | translate Cress diagrams to SDL |
cress_sdt | turn a Lola (Lotos) test process into an MSC/PR file for Tau SDT (SDL) |
cress_test | run JUnit tests on BPEL services |
cress_tidy | delete temporary Lola (Lotos) and Tau SDT (SDL) files |
cress_validate | validate Cress diagrams |
cress_verify | verify Cress diagrams |
cress_vxml | translate Cress diagrams to VoiceXML |
sdt_in sdt_sip sdt_vxml |
these are Tau Analyzer filters for IN, SIP and VoiceXML; set them as a filter in the Tau SDT Analyzer dialogue |
These in turn rely on various Perl modules:
Module | Purpose |
---|---|
cress_bpel.pm | Cress diagram to BPEL/WSDL translator; variants apply for each vocabulary |
cress_common.pm | Cress common definitions |
cress_cpl.pm | Cress diagram to CPL translator; |
cress_lexer.pm | Cress lexical analyser (diagram analyser) |
cress_lotos.pm | Cress diagram to Lotos translator; variant code applies for each vocabulary |
cress_parser.pm | Cress diagram parser (syntax analyser) |
cress_sdl.pm | Cress diagram to SDL translator; variant code applies for each vocabulary |
cress_vxml.pm | Cress diagram to VoiceXML translator |
cress_vocab.pm | Cress vocabularies |
The relationship among the main scripts is as follows:
To run these tools requires a Unix-like environment and Perl 5. The tools have been run on Unix (Fedora Core, NextStep/OpenStep, Solaris) and Windows (under CygWin).
The best choice for creating service diagrams is to use the Chive editor that is well integrated with Cress. This is Java-based and runs on many platforms. Virtually all Cress diagrams have been provided in Chive XML format.
If Java is supported on your platform, you can use yEd instead. Download this from yWorks. Diagrams need to be saved in GML format for Cress to use them. yEd will read .gml format as well as its own .ygf format.
If you are able to run NextStep/OpenStep, you can edit and create Cress diagrams. You may be able to download Diagram! and a licence key from the Web, though the author has local copies. The file cress.dpalette2 is a palette for this diagram editor.
Diagrams can be checked individually or in groups by running cress_check.
To deploy and run generated Web Services, you will need Apache Tomcat (e.g. version 5.5.12 onwards) and ActiveBPEL (e.g. version 5.0.2). To test web or grid services requires JUnit 4.0 or later and MySQL 5.0 or later. To deploy and run generated Grid Services, you will also need Globus WS Core (e.g. version 4.2).
ActiveBPEL versions 3.N onwards require a JVM version 1.5. However, by following online advice it is possible to configure ActiveBPEL to work with later JVM versions.
To deploy and run generated CPL, you will need a CPL-capable SIP server such as SER (SIP Express Router).
To analyse and execute the generated specifications, you will need Lola/Topo (e.g. version 3.6 onwards). The author has a version of Lola/Topo compiled for CygWin on Windows and Debian Linux. You might also wish to use CADP (e.g. version 7.1 onwards). Cress descriptions can be verified with Clove (Cress Language-Oriented Verification Environment) and can be validated with Mustard (Multiple-Use Scenario Testing and Refusal Description).
To analyse and execute the generated specifications, you will need the Telelogic Tau SDL Suite or SDL/MSC (e.g. version 4.6 onwards).
To deploy and run Cress IVR services, you will need V-Builder and associated packages from Nuance Corporation (e.g. version 1.2 onwards). This is a substantial and complex set of downloads that needs registration and approval by Nuance. At least Nuance V-Builder, Nuance Vocalizer and a Nuance language pack will be needed.
This program is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation - either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
You may re-distribute this software provided you preserve this Cress description. Bug reports should be sent to Ken Turner, who would also appreciate receiving any corrections and comments.