Kenton Lee

1996 X Technical Conference Review

by Kenton Lee

April, 1996

Copyright © 1996 Kenton Lee, All Rights Reserved.

My January column[Lee] presented a preview of the X Consortium's Technical Conference. The conference was held in sunny San Jose, California over February 12-14, 1996. Hopefully you were able to attend as the conference was, as usual, very informative. For those who missed it, this month's column presents a brief review of the conference.

I'll only cover the sessions that I attended. Papers for many of the sessions were published in the conference proceedings[Proceedings] and other are available on-line[X FTP].

Monday: Tutorials and BOFs

The first day of the conference was dedicated to tutorials during the day and some BOF sessions in the evening. This is the only day of the conference with multiple sessions running simultaneously.

GUI Programming Using Java

I attended the half-day tutorial GUI Programming Using Java, by Jan Newmarch of the University of Canberra, Australia. This was a long version of Jan's article in the February issue of TXA.

Java is, of course, one of the hottest new World Wide Web technologies. This tutorial focused on the Abstract Window Types (AWT) toolkit for Java. AWT allows WWW developers to easily create simple graphical user interfaces within WWW pages. AWT uses a single application programming interface (API) for a variety of WWW platforms. The UNIX version is based on the Motif toolkit (version 1.2) and X Window System.

The tutorial focused on the ins and outs of the AWT API, with an emphasis on its mapping to Motif. The initial AWT release provides only a fraction of Motif's functionality, but it does allow Java programmers to create functional, cross-platform user interfaces. Hopefully, it will improve with future releases.

Other Tutorials

I didn't attend any of the other tutorial, so I'll just list them here for your information. Material from the tutorials does not appear in the proceedings. Many are, however, probably taught at other X or UNIX oriented conferences. Some are also taught through corporate education programs.

The X Advisor BOF

Several BOFs were held Monday evening and I attend Steve Mike's BOF on The X Advisor. The BOF allowed the TXA management, a few of us authors, and several of you readers to discuss the status of the magazine and future plans. I enjoyed meeting the readers and hope you felt likewise. The TXA readership is rapidly growing and Steve has big plans for the future.

Technical Talks

The main part of the X Conference is the technical talks. As I mentioned in my January column, many of the projects were related to a few key technical themes:

I'll only present my impressions of each talk. For more information on each talk, see the paper in the proceedings[Proceedings] or, if available, any material that the author has made available on the X Consortium's FTP site[X FTP].

Dynamic Extension and Control of Xt Applications

Presenters: Jan Newmarch and Huimin Xu, University of Canberra.

Many times, you've probably used an application program and wished that the program had just one more feature. Unfortunately, since you didn't have access to the source code for the application, you couldn't make the change.

This talk looked at ways to make applications more extensible by the end user, including changes that involve new code that operates on existing application data structures. Their techniques were based on an extended version of tclMotif, a Motif toolkit for the popular tcl scripting language.

SCO Visual Tcl: An Introspective Look

Presenter: Susan DeTar, SCO

This talk presented an overview of SCO's Visual Tcl product. Like the tclMotif toolkit discussed in the previous talk, Visual Tcl allows programmers to develop Motif applications using the tcl scripting language. Scripting languages like this allow programmers to develop simple applications very easily. Programmers that frequently develop small applications, e.g., system administrators developing in-house tools, should consider these languages. Another choice is the Desktop KornShell, which is part of the Common Desktop Environment and is discussed in Stephen Pendergrast's monthly TXA column.

Scripting languages can often be used in place of traditional programming languages such as C and C++. The scripting languages are generally interpreted (not compiled) and have simpler syntaxes. Because of this, they work best with smaller applications, perhaps being written by beginning or non-professional programmers. They are very popular, for example, with system administrators.

Scripting languages are often poor choices for larger applications, however, because they run more slowly and they often scale poorly. Long term support for some of the languages may also be an issue.

Developing MT-hot Motif Applications and MT-safe Motif Widgets

Authors: John Mani and Kapono Carter, Sun

Multi-threading is becoming a popular application programming technique. It can improve the performance of certain types of applications, including GUI applications that want to interact with the user while at the same time performing lengthy internal computations.

Unfortunately, Motif 1.2 and 2.0 do not support multi-threading. If you call Motif functions from more than one thread, Motif will often crash. This presentation discussed multi-threading capabilities that will be available in a future version Motif. New features allow widget writers to write thread-safe widgets and allow application programmers to write multi-threaded applications.

Xt Components: An Alternative to Writing Compound Widgets

Presenter: David Bainbridge, ICS

Most of you are probably familiar with the low level X Toolkit widgets, such as buttons and scroll bars. Many Xt application programmers find themselves using the same collections of widgets over and over. Xt does provide a mechanism, called compound widgets, that allows programmers to create higher level widgets that encapsulate several primitive widgets. Motif's file selection box and other dialog widgets are examples of these. Application programmers can create their own compound widgets, but most are reluctant to do so because of the complex syntax.

This talk discussed an alternative, using the C programming language and a single extensible widget class. The syntax is still cumbersome, but simple cases are simpler than writing real compound widgets.

Programmers interested in this subject may also want to consider C++ based solutions. Many of the C++ X Toolkit frameworks provide similar functionality, but with a C++ syntax (constructors, destructors, etc.).

You Can Print From X in 1996: The CDE Print Service

Presenter: Axel Deininger, Hewlett-Packard

Users have long complained that X does not have a standard solution to printing. Currently, applications that want to produce high quality output (i.e., 300+ dpi, not 72 dpi) must provide two separate rendering modules, one for the screen and one for the printer.

Fortunately, CDE will solve this (in it's next release) with a print service. CDE will extended the X server so an application can use the X protocol to render to a printer. It also provides a new print widget that helps the user select printer configuration options.

Å (awe): An Interpreted Language for Interactive Animations

Presenters: Gunnar Rønning and Svein Johansen, University of Oslo

Å is a programming language designed for graphics animations. Å has a syntax similar to the C language, but the Å data types declare graphical objects and Å operators perform graphical operations, such as animations. This is an interesting research project with several potential applications. More information on Å and related projects is available at http://www.sn.no/~candle/.

HBX: High-Bandwidth X for Satellite Internetworking

Presenters: Yongguang Zhang and Son K. Dao, Hughes Research Laboratories

Hughes is studying the feasibility of distributed computing via satellite, such as connecting an X client with an X server over a satellite link. Unlike telephone lines, where bandwidth is limited and latency is low, satellite have very high bandwidth but very high latency. Unfortunately, even non-interactive X clients perform many round-trip X requests (mostly during startup) and, thus, perform poorly over satellite.

Hughes is trying to improve the startup performance using a scheme similar to the X Consortium's LBX (duplicating X server functionality in the client, caching whenever possible, etc.), but have only limited success so far. Perhaps more research will improve their results.

Font Support in WinCenterPro: Using the X Font Service Protocol

Presenter: Keith Packard, Network Computing Devices

WinCenterPro is an X-based multi-user NT system. One problem with combining X and NT is rendering text. They optimized this process by using NT fonts to render X text. They accomplish this by loading the fonts into the X server via the X Font Service (XFS) protocol.

These techniques are interesting because the X Consortium's Broadway project can take advantage of them. The next several talks at the conference were about Broadway.

Broadway: Universal Access to Interactive Applications over the Web

Speaker: Bob Scheifler, President of the X Consortium

This talk introduced Broadway, an exciting new project at the X Consortium. A major goal is to run existing X applications, without modification, over the World Wide Web. One of the major problems with the current state of World Wide Web programming is that companies must convert their existing software to a new set of network protocols, programming toolkits, and possibly even programming languages. If the Broadway project is successful, that extra work will not be necessary.

The major components of Broadway are:

The conference proceedings did not include a paper for this talk. You can, however, find the slides on the World Wide Web at: http://www.x.org/consortium/broadway.html. More information also appeared in the November, 1995 issue of The X Advisor.

Embedding X Clients in Web Browsers

Presenter: Kaleb Keithley, X Consortium

This talk covered one part of the Broadway project: embedding X servers in WWW browsers. The X Consortium has tested several techniques for embedding X in WWW browsers and the results are promising.

There was no paper for this talk in the conference proceedings, but much of the material was previously published in the July issue of TXA.

The Broadway Audio System

Presenters: Ray Tice and Mark Welsh, X Consortium

This talk covered Broadway's audio system. Like the X Window System, it uses a client-server networked architecture. While it can be used over a local area network, as X currently is generally used, the audio system will also be WWW-capable.

The slides from this presentation are available at ftp://ftp.x.org/contrib/conferences/XTech96/audio_slides.ps.

Security Architecture for Broadway

Presenter: Stephen Gildea, X Consortium

Most X applications are currently run over trusted local area networks, where security is often not a major issue. Security can become much more important when applications, often from untrusted hosts, are run over the World Wide Web. This talk examined many aspects of X security, including authorization, data interchange, and resource sharing.

The slides from this presentation are available at ftp://ftp.x.org/contrib/conferences/XTech96/security-gildea/.

Secure Application Sharing under X

Presenter: Oliver Pfaff, Siemens Corporate Research and Development

This talk discussed more serious levels of security than are currently being considered for Broadway, including encrypting the X data stream. Such levels of security are important when users need to keep their data private, rather than just protecting their systems from hackers.

Trusted CDE Overview

Presenter: Glenn Faden, Sun Microsystems Federal

Like the previous talk, this talk discussed high security applications of X. In particular, they are developing a version of the Common Desktop Environment (CDE) that meets military security requirements. These requirements include both network security, as in the previous talk, and inter-client security , such as mediating cut-and-paste between clients with different security levels.

XMovie: Application Services for Distributed Multimedia Systems

Presenter: Ralf Keller, University of Mannheim

This talk discussed a distributed multimedia system based on X. Their system considers not only the traditional transmission and synchronization problems, but also issues such as equipment control in a client-server environment.

X Multimedia Services

Presenter: Mike Patnode, SCO

This talk reviewed recent work on an X Consortium distributed video project being sponsored by SCO. The major parts of this project are a X Media Services Broker which uses a new X Video Stream (XVS) extension to the X protocol. This broker and protocol allow X applications to control the synchronization of external video streams. This control is necessary for high quality distributed video playback.

MediaWarehouse: Integrating Multimedia Data Through The X Window System

Presenter: Kenton Lee, consultant to Silicon Graphics, Inc.

This was my talk, so I won't say much about it here. An updated version of the conference paper is available at http://www.rahul.net/kenton/xconf96/mw.html.

Dynamic Loadable Architecture for X Library Internationalization

Presenters: Shinobu Matsuzuka, Hidetoshi Takima, and Alexender Gelfenbain, SunSoft

X11R6 defined a framework for international text input models. This talk discusses ways to extend the X11R6 framework using dynamically loadable input method models. Dynamic loading allows many input models to be supported by an application (choosing as a configuration option). It also allows new input models to be added without modifying the application.

GLR: An OpenGL Render Server Facility

Presenter: Mark Kilgard, Silicon Graphics

Traditionally, X has been used to one X server render user interfaces on behalf of many remote X clients. This project looked at a reverse problem: several low-end X servers sharing a remote high-end graphics rendering engine. Since high-end graphics engines are often not used continuously, this system can help some user groups use the otherwise idle resource.

Widget Lint Implemented via an External Testing Tool

Presenter: Ido Sarig, Mercury Interactive Corp.

As long time UNIX programmers know, lint is a (once popular) program that checks your programs for many common C programming syntax errors. This talk discussed a similar sort of error checker for X Toolkit programs. Unlike the original lint, WidgetLint is implemented in an instrumented library with which your applications should link. At run time, the library looks for semantic errors in your X Toolkit function calls. Some Xt programming errors can be hard for programmers to identify, but easy for programs like this.

Testing Internationalized GUI Applications

Sankar Chakrabarti and Sunil Girdhar, Hewlett-Packard

Many U.S. companies get half or more of their revenue from international sales. These customers generally require that their user interfaces use their local languages and idioms. Since there are many such languages, testing costs can be high. This talk discusses some "locale neutral" testing techniques that can simplify the testing of internationalized applications.

Enhancing Testability of X Clients

Presenters: Sami Mohammed, X Consortium, and Sankar Chakrabarti, Hewlett-Packard

This talk looks at ways to test X applications through non-public interfaces. They have implemented a "RemoteGetval" protocol for retrieving data, such as widget resources values, from X clients being tested. Such a tool can greatly simplify the process of automatically testing X clients.

RECORD: An Extension for X Protocol Capture

Presenter: David Wiggins, X Consortium

This talk discussed the details of the RECORD protocol extension, which is new in X11R6.1. RECORD allows an X client to capture the X protocol stream of another X client. This data can be valuable when testing or debugging an X application.


Conclusion

I hope you were able to attend the conference. Attendance was lower this year than in past conferences, though this is not surprising considering that X is now twelve years old and this is the tenth annual conference.

Still, the technical content was interesting. There were plenty of opportunities to meet our colleagues. Also, in contrast to previous conferences that were held in Boston's freezing winters, the weather in San Jose was sunny and 80F degrees for most of the conference.

If you'd like to present a paper at next year's conference, watch the comp.windows.x.announce newsgroup or the X Consortium's web site. The call for papers is usually released during August or September. Proposals are due in October and final proceedings papers are due in December.


References

[Lee]
"1996 X Technical Conference Preview", The X Advisor, Vol. 2, No. 1, January, 1996.
[Proceedings]
Proceedings of the 10th Annual X Technical Conference, published as The X Resource, Issue 17, O'Reily & Associates, Inc., Sebastopol, California, January, 1996. ISBN 1-56592-178-X.
[X FTP]
Copies of the slides from several of the technical talks are available by anonymous FTP to: ftp://ftp.x.org/contrib/conferences/XTech96/

Ken Lee is an independent software consultant specializing in X Window System application software. He has been developing UNIX graphical user interface software since 1981. Ken may be reached by Internet electronic mail at kenton @ rahul.net or on the World Wide Web at http://www.rahul.net/kenton/.

Ken has published over two dozen technical papers on X software development. Most are available over the World Wide Web at http://www.rahul.net/kenton/bib.html.