[comp.std.unix] User Interface Management Systems and Application Portability

rcs@sei.cmu.edu (Robert Seacord) (10/03/90)

Submitted-by: rcs@sei.cmu.edu (Robert Seacord)

the following article appears in the standards column of the october issue
of ieee computer.  i am posting it to this newsgroup with permission from 
the ieee.

rCs
______________________________________________________________
User Interface Management Systems and Application Portability

by

Robert C. Seacord
Member of the Technical Staff
Software Engineering Institute

  Higher  level  programming  languages  and  standard  operating  systems now
provide greater portability of application software than previously  possible.
Software  developed  in  C  for  Unix,  for example, can be easily ported to a
variety of different architectures and  machines.    Developing  language  and
operating  system  standards  such  as  ANSI  C  and  IEEE  POSIX will further
application portability.  At a quick glance it appears as though open  systems
are finally becoming a reality, but are they really?

  As  porting  software  to  different  architectures  becomes more and more a
matter of simply  recompiling  the  software  for  that  architecture,  it  is
apparent  that  a serious problem in portability is with the user interface of
these systems.  Now, more than ever, when a customer buys a computer  platform
they  are  also  buying  a  "look and feel" associated with that system.  When
using an Apple Macintosh, for example, the user expects to be able to  perform
a variety of actions using a single button mouse.  When working with an MS DOS
application, the user expects to be able to perform the same actions using the
keyboard.    When  running  OpenLook,  Motif, or NeXTStep the user expects the
application to provide a defined look and feel.   Porting  an  application  to
simply run on a different platform is insufficient; there is a requirement for
the application interface to behave in a similar fashion to other applications
developed for that environment.

  Software  designs are usually not extensible enough to allow the integration
of different user interface toolkits, particularly if  these  toolkits  employ
significantly  different  models  in  their  application interfaces.  Changing
toolkits or integrating new toolkits usually requires  major  modification  to
the application, which then requires extensive re-testing of the application.

  Current  standards  activities are just beginning to address these problems.
To date, standards bodies have attempted to define an abstract user  interface
toolkit  that  can  be  implemented  in  different  ways.  Where this approach
provides some degree of device independence it does not allow for the  removal
of  stylistic  concerns  from  the  application.   For example, where one user
interface style guide may call for a pull-down menu, another may  call  for  a
command line interface.

  One  approach  for  addressing the problem of application portability across
multiple look and feel platforms is the definition  and  implementation  of  a
method  for  separating  the  application  from  the  user  interface.    This
separation makes changing the user interface of the system practical. It  also
makes  it  possible  to  change  user interface toolkits without modifying the
application software.

User Interface Management Systems

  The term user interface management system (UIMS) was first coined at a  1982
Workshop  on  Graphical  Input  Interaction Technique (GIIT) [17].  UIMSs are,
among other things, intended to encourage the separation of a software  system
into  an  application  portion  and a user interface portion.  The application
portion of  a  system  implements  the  core  functionality,  while  the  user
interface portion implements the user interface dialogue.

  UIMSs   provide   facilities   for   defining   both  presentation  and  the
computer-human dialogue components of a user  interface.    A  UIMS  also  may
provide  facilities to support prototyping, encourage a design that allows for
easy  modification  of  the  user  interface,   support   implementation   and
maintenance   of   the   user   interface,  and  allow  for  the  evolutionary
incorporation of new user interface technologies.

  Most UIMSs are based on the Seeheim architecture [7] (see Figure 1).    This
architecture  uses a layered approach similar to the one used in International
Standards Organization (ISO) Open Systems Interconnection (OSI) standard.  The
architecture  is intended to encourage the separation of functionality between
the application and the user interface portions of a  software  system.    The
three different layers of the architecture provide differing levels of control
over user input and system output.

        Application Layer

        Dialogue Layer

        Presentation Layer

                        Figure 1:   UIMS Architecture

  The application layer consists of the core functionality of the  application
that can be described in a presentation independent manner.  For example, in a
calculator program this would include the underlying math subroutines library.

  The dialogue layer  specifies  the  presentation  dependent  portion  of  an
application  system including the dynamic behavior of the user interface.  The
dialogue should allow the display and removal of interaction  objects  without
application  involvement and support cascading menus, direct manipulation, and
other user interface sytles and techniques.  The dialogue provides the mapping
between  the presentation and application layers.  The user interface dialogue
may be specified using a user interface definition language (UIDL)  or  by  an
interactive technique.

  The  presentation  layer  controls  the  end-user interactions and generates
low-level feedback.  The  presentation  layer  consists  of  a  collection  of
interaction objects defined for a given user interface technology.

Existing Approaches

  Since  the  1982 GIIT Workshop, there have been a number of efforts to build
UIMSs that achieve the goal of  separation  of  concerns,  while  remaining  a
practical   approach  to  software  development.    These  systems  have  been
classified by the model used in dialogue specification.    Some  of  the  more
successful  approaches have been:  event-driven, declarative, object-oriented,
data-driven, and interactive layout systems.

  In the event-driven approach, inputs are  considered  as  events  which  are
immediately  handled  by  event  handlers.    Event  handlers can cause output
events, change  the  internal  state  of  the  system,  and  call  application
routines.   Examples of event-driven systems include the University of Alberta
UIMS [6], ALGAE [5], Sassafras [9], and the TeleUSE UIMS [16].

  Another approach is the use of declarative languages  in  which  constraints
are  defined in order to specify what the system should do rather than specify
how it should be done.  An example of a system that  takes  this  approach  is
Cousin [8].  In this category, there is a class of systems which automatically
generate the user interface based on a definition  of  the  semantic  commands
supported by the application. Examples are the UofA* UIMS [12] and MIKE [10].

  An  object-oriented  approach  uses  objects for defining user interactions,
transforming data and interacting with the application.  A good example  of  a
commercially  available  system  that uses an object-oriented approach is Open
Dialogue [1] developed by Apollo Computer.

  In the data-driven approach, the application communicates with the  UIMS  in
terms  of  shared  data elements.  The UIMS behaves like an active database in
that it provides a mapping between application data and user interface toolkit
objects, and notifies the application of changes to application data resulting
from user interactions.  This approach was implemented  in  the  Serpent  UIMS
 [2]  developed  at  the  Software  Engineering  Institute  at Carnegie Mellon
University and the George Washington UIMS [11].

  Interactive layout systems allow the user to build user interface by  direct
manipulation.    Examples are Menulay [3], DialogEditor [4], vu [13], and TAE+
 [15].

UIMS Study Group

  The IEEE P1201 working group was formed in January of 1989 and chartered  to
develop standards that would further application and user portability in the X
Windows Environment [14].  Since P1201 was formed,  Open  Software  Foundation
(OSF), Sun and AT&T have independently developed toolkits for X Windows.  Much
of the P1201 effort has been spent trying to decide if any of  these  toolkits
can  serve as a basis for a standard or if a "virtual" toolkit approach can be
used.

  In August of 1989, a UIMS study group was begun in  P1201  to  determine  if
UIMS  technology was sufficiently advanced to solve the problem of application
portability across multiple look and feel platforms and to define the scope of
a UIMS standard.

  The   group   identified  two  components  where  standardization  would  be
beneficial to the industry.  The first of these is an application  programmers
interface (API) that would:

   1. Provide a standard application programmers interface across changes
      in the underlying toolkit.

   2. Support  the  separation  of  an  application   into   presentation
      independent  and presentation dependent layers corresponding to the
      application, dialogue,  and  presentation  layers  of  the  Seeheim
      architecture.

   3. Allow   the  development  of  applications  that  are  presentation
      independent  (i.e.,  the  underlying  windowing  system   or   user
      interface toolkit).

  The  second  component is a UIMS interchange format (UIF).  The purpose of a
standard UIF is:

   1. To enable a wide variety of UIMSs to use a single format  to  store
      and exchange their data.

   2. To  allow  vendors  to develop compilers or interpreters that could
      "execute" the UIF on their  platforms  in  a  manner  analogous  to
      postscript printers.

  The  P1201  UIMS  study  group  has  evaluated  a  number  of user interface
management systems including Serpent, TeleUSE, and TAE+.  The concensus of the
group  is that the state of the practice is sufficiently advanced to warrant a
standards effort.  It is believed that a  UIMS  standard  would  enhance  both
application  portability  and  the  state  of  the  practice in user interface
development.

                                  REFERENCES


[1]   Apollo Inc.
      Open Dialogue:  Designing Portable, Extensible User Interfaces.
      1987


[2]   Bass, L.J., et al.
      Serpent:  A User Interface Environment.
      In Proceedings, Winter 1990 USENIX Technical Conference.  Washington,
         D.C., January, 1990.


[3]   Buxton, W., Lamb, M.R., Sherman D., Smith, K.C.
      Towards a Comprehensive User Interface Management System.
      In Computer Graphics: SIGGRAPH'83 Conference Proceedings, pages 35-42.
         Detroit, MI., July, 1987.


[4]   Cardelli, L.
      Building User Interfaces By Direct Manipulation.
      In Proceedings, ACM SIGGRAPH Symposium on User Interface Software, pages
         152-166.  ACM, New York, NY, 1988.


[5]   Flecchia, M.A. and Bergeron, R.D.
      Specifying Complex Dialogs in ALGAE.
      In Proceedings SIGCHI+GI'87: Human Factors in Computing Systems, pages
         229-234.  Toronto, Ont., Canada, April, 1987.


[6]   Green, M.
      A Survey of Three Dialogue Models.
      ACM Transactions on Graphics 5(3):244-275, July, 1986.


[7]   Green, M.
      Report on Dialogue Specification Tools.
      User Interface Management Systems :9-20, 1985.


[8]   Hayes, P.J., Szekely, P.A., Lerner, R.A.
      Design Alternatives for User Interface Management Systems Based on
         Experience with COUSIN.
      In Proceedings SIGCHI'85: Human Factors in Computing Systems, pages
         169-175.  San Francisco, CA, April, 1985.


[9]   Hill, R.D.
      Event-Response Systems -- A Technique for Specifying Multi-Threaded
         Dialogues.
      In Proceedings SIGCHI+GI'87: Human Factors in Computing Systems, pages
         241-248.  Toronto, Ont., Canada, April, 1987.


[10]  Olsen, D.R.
      The Menu Interaction Kontrol Environment.
      ACM Transactions on Graphics 5(3):318-344, 1986.


[11]  Sibert, J.L.
      An Object-Oriented User Interface Management System.
      In Computer Graphics: SIGGRAPH'86 Conference Proceedings, pages 259-268.
         Dallas, Texas, August, 1986.


[12]  Singh, G. and Green. M.
      A High Level User Interface Management System.
      In Proceedings SIGCHI'89:  Human Factors in Computing Systems, pages
         133-138.  ACM, New York, NY, 1989.


[13]  Singh, G. and Green. M.
      Designing the Interface Designer's Interface.
      In Proceedings, ACM SIGGRAPH Symposium on User Interface Software, pages
         109-116.  ACM, New York, NY, 1988.


[14]  Mehta, S.
      User Interfaces and the IEEE P1201 Committee.
      Unix Review 8(1):14-20, January, 1990.


[15]  Szczur, L. and Miller, P.
      Transportable Applications Enviroment (TAE)+:  Experiences in
         Objectively Modernizing a User Interface Environment.
      In OOPSLA'88 Conference Proceedings, pages 58-70.  San Diego, CA,
         November, 1988.


[16]  TeleLOGIC.
      TeleUSE Reference Manual.
      1989


[17]  Thomas, J.J. and Hamlin, G.
      Graphical Input Interaction Technique (GIIT) Workshop Summary.
      Computer Graphics 17(1):5-30, January, 1983.


Volume-Number: Volume 21, Number 179

rja7m@chaos.cs.Virginia.EDU (Ran Atkinson) (10/05/90)

Submitted-by: rja7m@chaos.cs.Virginia.EDU (Ran Atkinson)

Dr. Randy Pausch of the Computer Science Department here at U.Va.
has actually implemented a User-Interface Toolkit named SUIT
(" Simple User Interface Toolkit") that is in fact portable across
diverse platforms including X-Windows, MS-Windows, the Apple Macintosh,
and others.  One nice feature is that using SUIT doesn't lock you
into any Look and Feel and the Look and Feel can be changed without
recompiling.

Folks interested in UIMSs might well want to get more information
on SUIT.  Sending a request via e-mail to: graphics@cs.virginia.edu
should suffice. 

Randall Atkinson
randall@Virginia.EDU

Volume-Number: Volume 21, Number 183