John H. Ganter

Inter-Application Communication (IAC) Using Esri Software and Other Development Tools


Inter-Application Communications (IAC) Tutorial Web Page: presentation slides and sample code

ABSTRACT

Vendors of software packages differentiate their products by focusing on specific areas, with inevitable tradeoffs. This strategy satisfies the majority of customers and application developers, but a minority have cross-cutting needs that have traditionally been addressed by expensive customizing of source code or original development. There is an emerging mixture of alternative techniques like inter-application communication (IAC), inter-process communication, client/server, and 'componentware' as popularized by Visual Basic custom controls (VBXs) and OLE custom controls (OCXs). All of these technologies help to create systems assembled from separate software pieces and various types of 'glue' (communications links, messaging protocols, and exposed methods). We begin with a taxonomy that clarifies this terminology and shows the evolution of the various architectures.

Next we examine the IAC capabilities in ArcInfo (AI) and ArcView (AV). Under Unix, ArcInfo and ArcView are Remote Procedure Call (RPC) clients and servers. AI can interpret Arc Macro Language (AML) text files on-the-fly, which allows the developer control through a mixture of RPC calls and AML. This provides opportunities for AI-AI, AI-AV, and AV-AV client/server arrangements. One can also link to C or script language programs. The latter are problematic because of the way AI encapsulates RPC in object code. We have connected the Tcl/Tk script language (with its large collection of flexible X11 widgets) to ArcInfo by 'spoofing' the Arc tty, and are now investigating a 'bridge' C program that will link a Tcl interpreter and the AI object code.

Under Windows, ArcView can interact with Visual Basic through dynamic data exchange (DDE). This provides a large collection of easy-to-use widgets: buttons, spinners, sliders, gauges, spreadsheets, graphs, charts, strip recorders, image and video viewers, sound players, speech recognizers, fax receivers/transmitters, telephony modules, TCP/IP clients, data acquisition and instrument controllers, neural networks, and many more. DDE is useful but limited, especially in obtaining notification of random user-caused events. AV for Windows and AV for Unix have incompatible IAC, but this limitation can be worked around using file-based messaging in conjunction with shared NFS directories.

Using screen prints and code samples, we show some of the above techniques and compare and contrast the various approaches. Design and prototyping is critical, since basic choices such as 'who is client/who is server' can be subtle and greatly constrain the system that results.


John H. Ganter
Member of the Technical Staff, GIS Specialist
Transportation Systems Analysis (6641)
Sandia National Laboratories
POB 5800, MS 0718
Albuquerque, New Mexico 87185-0718
Telephone: 505-844-1304
FAX: 505-844-0244
email: jganter@ttd.sandia.gov

Revised: 21 August 1995