next up previous contents
Next: 1. Why Java? Up: YAON, a Static Diagram Technique Systems Previous: Contents

  
Introduction

YAON, short for Yet Another Object Notation, is a three years ongoing project between two partners the Ludwig-Maximilians Universität München (LMU) and the Research Institute of Applied Software Technology (FAST). This report describes a practical notation designed to graphically document the implementation decisions embodied in Object-Oriented programs running in distributed systems and open networks using different communication protocols. YAON is intended to model the static aspects of distributed systems as the Static Structure Diagrams of the Unified Modeling Language (UML), (see [RAT97a], [RAT97b], [RAT97c]), developed by Booch, Jacobson and Rumbaugh. In fact YAON is based on the technique mentioned above for capturing the static aspects of Object-Oriented systems. The extensions are mainly derived from the Intermediate Object Notation (ION) (see [AI95]) developed at the NASA by Colin Atkinson and Michel Izygon. These extensions were done in order to specify how systems running in a physical location communicate with some other entities physically located in other places. In addition, there are some new concepts such as interfaces, final instance variables and methods.

The notation does not intend to be a graphic programming language but a design tool complementary to the source code. Real-life systems, like the live scoring system for the Compaq Grand Slam Cup 1997 (see [MM97]), have been modelled using both YAON and Component Event Diagrams (CEDs, see [Mai97]) and such case studies have shown that this notation is useful and well suited for the modeling of media and large systems which include distributed aspects. CEDs are a new technique to break down the system requirements into a low design level in a structured way and should be used as a complement to the YAON notation.

An automatic translation of models specified using this notation to Java code is intended. Thus, the graphic constructors (nodes and arcs) are conceptually designed such that they can easily be translated to Java constructs. The YAON notation is formally defined by its ``graph structure'' as well as by a graphic BNF.

A missing concept in the notation is the security concept. In distributed systems, concepts like digital signatures, certificates, cryptography, etc., are relevant issues which play very important roles. Some of these concepts are either not yet supported by Java or only partly supported by current versions of Java but not well documented. It is thought that new releases of YAON will include graphic notations for covering security in general.

This report is neither an introduction to UML nor ION nor a complete comparison.

Outline:

This document is structured as follows. In the first section, why Java has been chosen as the target language is explained. A list of the most relevant points of Java is given, concluding that Java is quite a good choice for implementing distributed systems.

The section 2 identifies the principal concepts used in ION and compares them to those used in UML.

This is followed by section 3 giving an overview of the different components used to construct diagrams. The nodes of the graphic notation are presented, and arcs, which represent relationships between the nodes, are explained. In this section, also the communication between processes running in different physical locations is discussed. Primitives for socket communication are described and the Remote Method Invocation (RMI) is discussed.

The formal syntax of YAON diagrams is presented in the section 4.

In section 5 examples of the use of this new notation are given. A buffered producer/consumer system is modelled as well as an ATM (Automatic Teller Machine).

Finally, section 6 draws some conclusions of the present work.

Yet Another Object Notation (YAON) will be used in the project A2: Distributed Systems which is part of the FORSOFT project.