Monthly R&D Status Report Date: May 15, 1997 Title: "Design of Distributed Adaptive Signal Processing Systems" Contract Number: "DAAB07-97-C-J007" Principal Investigator: Edward A. Lee Organization: University of California at Berkeley 1. Tasks Performed A major part of the effort during this period was in architecting the approach to building modular deployable design tools. In addition, the Tycho/Java infrastructure continues to progress. 2. Significant Accomplishments 2.1 Deployable Design Tools We have had extensive discussions within the group about how to achieve a software architecture for modular deployable design tools. A key part of the problem is to determine how to reliably create a subset of the developer's software infrastructure to deploy. There is prior art on which to base our design. For example, many Lisp systems include a way to dump the state of the system to disk for restarting later. For example, GNU Emacs includes the function 'dump-emacs'. In Lucid Common Lisp, there was a mechanism called 'tree shaking' which would allow a developer to 'shake' a code tree and get the 'fruit', or the code that was actually used. Franz' Allegro Common Lisp has a similar thing, in which the developer 'trains' the application and then can build a file that contains only the necessary parts of the system. Presumably we could do a similar thing with Tycho, using 'namespace ::tycho {info classes}' to see what classes are loaded. A possible visual aid would be to enhance the class diagram so that the classes that are actually loaded are highlighted. This might help the developer understand the ramifications of particular choices. To do this, we would need to extend the EditDAG so that it would know that the DAG is a class diagram and add the proper functionality. In Ptolemy, the CGC domain (code generation in C) comes fairly close to building a deployable standalong binaries. Clearly, CGC can build simple non-graphical deployable applications. Two key stumbling blocks to making more complex applications stand-alone are the interactive graphical infrastructure and the makefile infrastructure for compiling code. Also problematic are applications that use shared libraries that might be on the user's system and applications that use proprietary sound formats, such as Sun .au files. One question to deal with throughout is what platform we assume a deployable system will be deployed on. How much software infrastructure can be assumed? A Java virtual machine interpreter? A Tcl interpreter? Where processor-specific binaries are required, we need a mechanism to package the minimal set of binaries. Software component technology such as Corba may provide a solution here. A Java-specific question is whether to focus on creating applets or to focus on finding architectures that support Java applications. The security model built in to applets is essential for certain applications, but it can also be a significant hinderance. Java Beans, another software component technology, provides an alternative that we are investigating. Another issue to consider is the deployability and/or ubiquity of the Tcl/Java interface. Sun Microsystems is looking into compiling Tcl applications into Java byte code, which should make this issue easier to deal with. Sun has recently made a major comitment to using Tcl with Java; their announcement is included here as an appendix. Concerning the software architecture issues around modular deployable tools, John Reekie contributes the following observations: * There is always a tension between reusing code by inheritance (inherit and extend the functionality) or by composition (compose objects to obtain more complex functionality). Our designs tend to use a lot of inheritance; deployability implies that the emphasis should shift to composition -- which in turn implies shallower, broader, inheritance trees. * Java encourages the separation needed for deployability with its interfaces. Using interfaces could allow alternative "lighter" classes to be deployed instead of heavier ones. * Cleanly staging the "evolution" of a design from UI to execution will aid deployment at one of a number of stages. At each, it should be clear what is required to deploy and what is not. For example, it should be possible to deploy and execute a system that contains no scheduler; implication: the run-time data structures contain a reference to a schedule, but not a reference to a scheduler. * Incremental changes need to be supported at each stage -- the amount of "stuff" required at each deployable stage depends on degree of mutability needed. It should, for example, be possible to say "I want, at run-time, to substitute this subgraph with this other subgraph" without having to deploy an SDF scheduler. The semantics of mutability at run-time should therefore not be defined as graph mutations. * A deployed executable can be as light as the preceding stages can make it. It does not, for example, have to actually contain a graph. The framework for deployed applications needs to support the concepts of execution, control, monitoring, and debugging without being dependent on a graph structure. 2.2 Software Improvements Christopher Hylands completed the first cut at the Tycho test suite. It is possible to run all the tests with one command. Alain Girault has written an automatic star generator for the PN domain that takes as input OC specifications, which are the output from several synchronous languages (Esterel, Lustre, Argos). This provides an interesting experimental infrastructure for exploring the "desynchronization" of synchronous specifications, allowing for distributed implementations. Details are contained in: http://ptolemy.eecs.berkeley.edu/~girault/Ocpn/ocpn.html Christopher Hylands has constructed a "builder dialog" that can be used to manage installation of Tycho. One consequence is that it becomes unnecessary to bloat the software distribution with automatically generated documentation because the builder dialog will manage generation of the documentation at installation time. Christopher Hylands also modified the sound blocks in the Ptolemy SDF domain to insert Sun-compatible header information. Such files can thus be included in web pages under the control of Java applets. John Reekie made improvements to the Tycho ListBrowser and subclasses, the FileBrowser (for platform independence mainly), the IndexBrowser (for performance), and the Model and Interchange classes (for performance). Cliff Cordeiro adjusted the binding in the text editors in Tycho to make them exactly equivalent to emacs. John Reekie reworked the ButtonBox/ToolBar/Query classes. 3.0 Infrastructure Our near term strategy of using Itcl mixed with Java has received a boost from Sun Microsystems, who announced a major commitment to just such mixtures. Their announcement is included as an appendix. We have installed JDK1.1.1 (the latest Java development kit from Sun) and have begun using it for the Tycho/Java interface. 3.1 Personnel Jie Liu has joined the group as a graduate student. 3.2 Software Infrastructure Christopher Hylands obtained a beta version of Itcl for the Macintosh from Jim Ingham of Lucent. We believe that Tycho0.2 will run on the Mac, NT and Unix, although the Mac continues to display serious problems. We tested the ICEM CFD Tcl Lint program, but found that it could not handle Tk or Itcl, making it nearly useless for our purposes. 3.0 Publications and Presentations 3.1 Publications [1] C. Hylands, E. A. Lee, and H. J. Reekie, "The Tycho User Interface System," accepted by the 1997 Tcl/Tk workshop, to be held in July, 1997, in Boston. [2] S. Edwards, L. Lavagno, E. A. Lee, and A. Sangiovanni-Vincentelli, "Design of Embedded Systems: Formal Models, Validation and Synthesis," Proceedings of IEEE, vol 85, NO 3, March 97. 3.2 Talks by group members - "The Ptolemy Project," Edward A. Lee, EECS Colloquium, Wednesday April 23, 1997. 3.3 Talks by others - "Performance Estimation for the Codesign of Systems Running Concurrent Applications," Asawaree Kalavade, Bell Labs, Thursday, April 24th, 1997, Design Seminar, UCB. - "The Changing Vision of Web Application Development," David Ku, Escalade Corp., Thursday, May 1st, 1997, Design Seminar, UCB. - "Models of Computation in the Cubicon Medium," by Sanford Klausner, Cubicon, Inc., Thursday, May 8th, 1997, Design Seminar, UCB. APPENDIX -- ANNOUNCEMENT FROM SUN ================================= From: John Ousterhout Subject: New Sun business group: SunScript Date: 30 Apr 1997 20:11:25 -0700 Press Contact: Michael Sweeny Sun Microsystems, Inc. 415-786-8428 michael.sweeny@sun.com Taylor Kiland Burson-Marsteller for Sun Microsystems, Inc. (415) 463-4009 taylor_kiland@bm.com SUN LAUNCHES NEW BUSINESS GROUP, SUNSCRIPT, TO DRIVE DEVELOPMENT OF TCL SCRIPTING LANGUAGE SunScript Group To Integrate Tcl and Java Mountain View, Calif. - April 30, 1997 - In response to growing interest in the Tcl scripting language, Sun Microsystems Inc. announced today the launch of SunScript, a new business group. SunScript's mission is to develop and market rapid application development tools for Tcl developers and to provide access from Tcl to JavaBeans(TM) and Java(TM) applications. "These new Sun products will make many legacy and new applications accessible via the Web, where they can be used by Javastations(TM) and Java-enabled browsers, such as Netscape Communicator" said Scott McNealy, Chairman, President, and CEO of Sun. Tcl is a popular scripting language that allows rapid development of "gluing" applications such as graphical user interfaces and system integration. Originally developed at the University of California at Berkeley and distributed freely on the Internet, Tcl has been supported informally by Sun since 1994. The Tcl community is now estimated at 500,000 developers world-wide. Thousands of commercial Tcl applications have been deployed, ranging from computer-aided design to Internet commerce. "As the Tcl developer community has grown, there has been an increasing demand for high-quality development tools and support," said John Ousterhout, Sun Distinguished Engineer and inventor of Tcl. "Tcl developers also want to deploy their applications on the Internet and take advantage of Java, Sun's universal software platform for network application development." SunScript will provide a range of products that aid the development and deployment of Tcl applications, including an integrated development environment, a browser plugin module, and an embeddable Web server. The development environment will include a GUI builder, debugger, and project manager. The browser plugin allows Tcl applications to run in Web browsers such as Netscape Navigator(TM) and Microsoft Internet Explorer. The Tcl Web server makes it easy to manage devices and applications remotely via the Web. Early releases of the GUI builder and plugin module are already available for download. The SunScript group will also provide products that allow Tcl and Java applications to work closely together. Tcl developers will be able to include JavaBean components in their applications, and Java developers will be able to use Tcl as a bridge to legacy applications. Tcl/Java integration will enable developers to rapidly transition legacy applications to the Web and build exciting Web-centric applications in Tcl and Java. "Tcl technology is a splendid bridge solution for our enterprise customers," commented Bert Sutherland, Director of Sun Microsystems Laboratories. "Sun customers have pent up demand for technology that allows legacy software to communicate via Internet protocols, thus extending its useful lifetime. The SunScript group is building several such bridges to the future." For more information, please visit the SunScript Web site at http://www.sunscript.sun.com. Since its inception in 1982, a singular vision, The Network Is The Computer(TM) has propelled Sun Microsystems, Inc., to its position as a leading provider of hardware, software and services for establishing enterprise-wide intranets and expanding the power of the Internet. With more than $7 billion in annual revenues, Sun can be found in more than 150 countries and on the WorldWide Web at http://www.sun.com. Sun, the Sun logo, Sun Microsystems, Java, JavaBeans, JavaStation, SpecTcl, Tcl Plugin, and The Network Is The Computer are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Netscape Navigator(TM) is a trademark of Netscape Communications Corporation. Press announcements and other information about Sun Microsystems are available on the Internet via the World Wide Web using a tool such as Netscape or NCSA Mosaic. Type http://www.sun.com at the URL prompt. [[Send Tcl/Tk announcements to tcl-announce@mitchell.org Send administrivia to tcl-announce-request@mitchell.org Announcements archived at http://www.xpi.com/tcl/comp.lang.tcl.announce/ The primary Tcl/Tk archive is ftp://ftp.neosoft.com/pub/tcl/ ]]