******************************************************************************* The SAO R&D Software Suite Public Release 1.9 27 May 1999 containing: The X Public Access mechanism (XPA) SAOimage: The Next Generation (SAOtng) as well as: The ASSIST Graphical User Interface The XDir directory browser The IRAF ncl with tcsh line editing What's New and Significant in this release? ------------------------------------------- This is a major release of the SAO R&D package. It features a completely new (but backward-compatible) implementation of the XPA messaging system. XPA 2.0 moves our messaging capabilities beyond the original conception of an inter-process communication system for the X Window System. Redesigned on top of standard TCP sockets, XPA client and/or server support now can be added to Unix programs, Xt programs, and Tcl/Tk programs. It extends the single point-to-point communication of the original XPA by adding support for broadcasting. All programs in the SAO R&D suite have been upgraded to use XPA 2.0. For more information, see below and also: http://hea-www.harvard.edu/RD/xpa/index.html In addition to developing XPA 2.0 and upgrading all saord software to its use, a number of bug fixes and minor improvements have been made in this release. In particular, all bugs reported on the R&D 1.8 problems page have been fixed. No major improvements to SAOtng have been made in this release: we are working separately on the next major version of SAOtng (code named "ds9") and will begin a series of public beta releases in the near future. Introduction ------------ We are pleased to announce the availability of a new public release (version 1.9) of the SAO R&D software tree containing, among other things, a new and improved version of XPA messaging. We invite you to retrieve the software and use it for your astronomical analysis (and other?) needs. The New XPA 2.0 Messaging System -------------------------------- (more info: http://hea-www.harvard.edu/RD/xpa/index.html) The XPA messaging system provides seamless communication between many kinds of Unix programs, including X programs and Tcl/Tk programs. It also provides an easy way for users to communicate with XPA-enabled programs by executing XPA client commands in the shell or by utilizing such commands in scripts. Because XPA works both at the programming level and the shell level, it is a powerful tool for unifying any analysis environment: users and programmers have great flexibility in choosing the best level or levels at which to access XPA services, and client access can be extended or modified easily at any time. A program becomes an XPA-enabled server by defining named points of public access through which data and commands can be exchanged with other client programs (and users). Using standard TCP sockets as a transport mechanism, XPA supports both single-point and broadcast messaging to and from these servers. It supports direct communication between clients and servers, or indirect communication via an intermediate message bus emulation program. Host-based access control is implemented, as is as the ability to communicate with XPA servers across a network. XPA implements a layered interface that is designed to be useful both to software developers and to users. The interface consists of a library of XPA client and server routines for use in C/C++ programs and a suite of high-level user programs built on top of these libraries. Using the XPA library, access points can be added to Tcl/Tk programs, Xt programs, or to Unix programs that use the XPA event loop or any event loop based on select(). Client access subroutines can be added to any Tcl/Tk, Xt, or Unix program. Client access also is supported at the command line via a suite of high-level programs. The major components of the XPA layered interface are: 1. A set of XPA server routines, centered on XPANew(), which are used by XPA server programs to tag public access points with string identifiers and to register send and receive callbacks for these access points. 2. A set of XPA client routines, centered on the XPASet() and XPAGet(), which are used by external client applications to exchange data and commands with an XPA server. 3. High-level programs, centered on xpaset and xpaget, which allow data and information to be exchanged with XPA server programs from the command line and from scripts. These programs have the command syntax: [data] | xpaset [qualifiers ...] xpaget [qualifiers ...] 4. An XPA name server program, xpans, through which XPA access point names are registered by servers and distributed to clients. Defining an XPA access point is easy: a server application calls XPANew(), XPACmdNew(), or the experimental XPAInfoNew() routine to create a named public access point. An XPA service can specify "send" and "receive" callback procedures (or an "info" procedure in the case of XPAInfoNew()) to be executed by the program when an external process either sends data or commands to this access point or requests data or information from this access point. Either of the callbacks can be omitted, so that a particular access point can be specified as read-only, read-write, or write-only. Application-specific client data can be associated with these callbacks. Having defined one or more public access points in this way, an XPA server program enters its usual event loop (or uses the standard XPA event loop). Clients communicate with these XPA public access points using programs such as xpaget, xpaset, and xpainfo (at the command line), or routines such as XPAGet(), XPASet(), and XPAInfo() within a program. Both methods require specification of the name of the access point. The xpaget program returns data or other information from an XPA server to its standard output, while the xpaset program sends data or commands from its standard input to an XPA application. The corresponding API routines set/get data to/from memory, returning error messages and other info as needed. If a template is used to specify the access point name (e.g., "SAOtng*"), then communication will take place with all servers matching that template. SAOimage: The Next Generation (SAOtng) -------------------------------------- (more info: http://hea-www.harvard.edu/RD/saotng/index.html) SAOtng is a new version of the popular SAOimage display program. It is a superset of the ximtool program developed at NOAO for IRAF and as such, utilizes the NOAO widget server (included in this package). It also incorporates the X Public Access mechanism to allow external processes to access and control its data, GUI functions, and algorithms. SAOtng supports direct display of IRAF images and FITS images (and easily can support other file formats), multiple frame buffers, region/cursor manipulation, several scale algorithms, many colormaps, and easy communication with external analysis tasks. It is highly configurable and extensible to meet the evolving needs of the astronomical community. We have made minor modifications to SAOtng for this release, mainly in the area of bug fixes. (We did add support for displaying unsigned short arrays, reverse video, and a few other minor enhancements.) In general, our image display efforts are concentrated on the next version of SAOtng (code-named "ds9"). The ds9 program implements an integrated set of Tcl/Tk widgets for astronomical imaging and data visualization. It will offer many new features beyond the capabilities of SAOtng 1.9, such as image rotation, true PostScript printing, and cross-platform (Windows and Macintosh) support. Look for ds9 beta releases in the near future. Platforms --------- The SAO R&D software has been built on the following platforms: Sun Sparc Solaris 2.5, 2.6, 2.7 OpenWindows 3.x and X11R5/6 Sun Sparc SunOs 4.1.3, 4.1.4 X11R5/R6.3 HP9000/735 HP/UX B.10.20 X11R6 SGI IRIX 6.2, 6.5 X11R6 DEC Alpha OSF1 4.0 X11R6 Linux PC Slackware 2.2.5 X11R6 RedHat 5.x X11R6 We develop and run the software mainly on Suns, but time has been spent with the other (borrowed) platforms, especially 64-bit Alphas. Builds and ports on other systems should be relatively easy at this stage. If you do a port (or try to and have problems), please let us know. Information and Availability --------------------------- Please visit the SAO R&D Group Home Page for news, updates, and downloads: http://hea-www.harvard.edu/RD/index.html Our home page will help you to download the source code distribution and/or binary distributions for various platforms. Alternatively, the SAO R&D software suite can be retrieved directly via anonymous ftp from sao-ftp.harvard.edu in the pub/rd directory. The source tree is contained in a compressed tar file called saord.tar.Z. The binary distributions also are available at this site. We recommend using the binary distributions where possible. The unpacked tar file requires approximately 20 Mb of disk space. The build will require approximately double that amount, depending on the platform. SAOtng Mailing List ------------------- An saord mailing list (saord-announce) have been set up using Brent Chapman's "Majordomo" mailing list manager. Subscribers to this list will receive periodic status reports, release notices, and other useful information concerning SAORD software. If you wish to become a subscriber, please send an e-mail message to: majordomo@head-cfa.harvard.edu The mail should contain the following command in the body of the message: subscribe saord-announce If either you or your mailer add a signature to your mail message, please add the following command after the "subscribe" command(s): end (Note that we have combined the old saotng-announce and assist-announce lists into this saord-announce list, so it is not necessary to join the new list if you subscribed to one of the old lists.) Acknowledgments ---------------- Much of this software was developed at SAO by the HEAD Software R&D group with the significant help of collaborators across the country. The work at SAO was performed in large part under a grant from NASA's Applied Information System Research Program (NAG5-3996), with support from the AXAF Science Center (NAS8-39073). SAOtng, ASSIST, and XPA are embodiments of an evolving software cooperation philosophy and practice we hope to bring to astronomy and other disciplines. They reflect our efforts to understand how software systems (and people) can act in concert without sacrificing their independence. Contributors to this release include: Eric Mandel Smithsonian Astrophysical Observatory William Joye Smithsonian Astrophysical Observatory with important past and present assistance from: Alberto Accomazzi Smithsonian Astrophysical Observatory Mark S. Ackerman University of California, Irvine Mike Fitzpatrick National Optical Astronomy Observatories Doug Mink Smithsonian Astrophysical Observatory Saleem Mukhtar Jet Propulsion Laboratory John Roll Smithsonian Astrophysical Observatory Dennis Schmidt Smithsonian Astrophysical Observatory Ralph Swick The Web Consortium Doug Tody National Optical Astronomy Observatories For more information (or to complain or encourage!) --------------------------------------------------- Please send mail to: saord@cfa.harvard.edu. We respond to questions, bug reports, suggestions, gripes ... Eric Mandel eric@cfa.harvard.edu