Thursday

Ubiquitous Computing - What's It Good For?

Michael Karasick, IBM Research (msk@us.ibm.com)
Brian Barry, Object Technology International (Brian_Barry@oti.com)
Gaetano Borriello, University of Washington (gaetano@cs.washington.edu)
Michael Gorlick, The Aerospace Corporation (gorlick@aero.org)
Daniel Siewiorek, Carnegie Mellon University (dps@cs.cmu.edu)

A new and important research area has variously been called pervasive, invisible, or ubiquitous computing. This area is about delivery of information to/from computing appliances: sensors, PDA's, cell-phones, set-top boxes. The development of computational models and applications for a distributed network spanning these devices will profoundly change the future of computing. The area is currently in its infancy, and spans a variety of disciplines. The purpose of this panel is to describe that future, and to talk about how the OO community can help shape it.

Michael Karasick (moderator) received his PhD from McGill and Cornell Universities in 1988. He has been with IBM Research since 1988. Initially he worked in the area of robust computational geometry, followed by legacy integration frameworks in a variety of guises, including a system for logistical modeling of semiconductor wafer FABs. He spent two years at Sematech (in Austin, TX), from 1991 to 1993. Following this he was the chief architect of the IBM Visual Age C++ 4.0 compiler. He currently manages the Pervasive Computing Systems and Software department. He is a member of the ACM and IEEE.

Brian Barry is the President and CEO of Object Technology International, Inc. (OTI). He has over 15 years of experience in the design and implementation of object-oriented systems, including distributed, client/server, embedded and real-time applications. Dr. Barry has published a number of research papers and articles in the areas of simulation, OO applications, systems integration, embedded systems and software engineering, and is a frequent speaker on object technology. He has often served on the Program Committees for OOT conferences such as OOPSLA and ECOOP, is a charter member of the ANSI Smalltalk committee, a board member of MITACS, and participates in a number of research review boards.

Gaetano Borriello, is Professor of Computer Science & Engineering at the University of Washington and is currently the Principal Investigator of the DARPA-sponsored Portolano Expedition in Invisible Computing. He received his Phd from the University of California at Berkeley in 1988. Prior to that, he was a member of the research staff at the Xerox Palo Alto Research Center where he continues to have strong ties. Most recently, his research has focused on system-level development environments for distributed embedded systems and the automatic synthesis of communication and coordination code. This interest has evolved into the Portolano Expedition which seeks to create and deploy the next generation of computing appliances, devices, and services.

Michael Gorlick completed his graduate work at the University of British Columbia in 1978. He joined TRW Defense and Space Systems Group in 1979. He spent his first two years there conducting research in compiler testing and validation. In 1984 he moved to the Computer Science Laboratory of The Aerospace Corporation and has been happily noodling away ever since on problems in logic programming, software testing, performance analysis, the software engineering of extremely large systems, networking, and software integration.

Daniel P. Siewiorek, Buhl Professor of Computer Science and Electrical and Computer Engineering at Carnegie Mellon University, is currently Director of the Human Computer Interaction Institute. He helped to produce the Cm* multiprocessor system and contributed to the dependability design of 24 commercial computer systems. He has published over 350 technical papers and eight textbooks. Siewiorek received the BS in electrical engineering from the University of Michigan and the MS and PhD, both in electrical engineering, from Stanford University. He was elected an IEEE Fellow in 1981 for contributions to the design of modular computer systems; in 1988 received the Eckert-Mauchly Award for his contributions to computer architecture and was elected as a member of the 1994 Inaugural Class of ACM Fellows. He is a member of the IEEE Computer Society, ACM, Tau Beta Pi, Eta Kappa Nu, Sigma Xi, and the IEEE Computer Society.

Position Statements

Brian Barry: Embedded Systems Development
OTI has been developing tools and runtimes for virtual machine based embedded systems since 1985. Our early technology was based on embedded Smalltalk, and was used in a number of groundbreaking products, including oscilloscopes, integrated manufacturing, radar systems, and medical instruments. More recently we have produced a Java based version of our tool set. While there are obviously some significant differences between the Java and Smalltalk programming languages, there are also striking similarities. Many of the lessons that we have learned with embedded Smalltalk carry over to embedded Java:

  1. Implementors must design for the embedded arena from the outset – workstation tools don’t scale. Class libraries must be small and modular. Runtimes must be portable, and make minimal platform assumptions.
  2. The biggest performance issue isn't speed - it's size. The need for a small footprint dominates the design of embedded runtimes. Stripping tools, while useful, do not of and by themselves provide a solution.
  3. The benefits provided by embedded Java are real and there will be success stories - VM based portability, self describing data, garbage collection, etc. all make it easier to develop and deploy complex applications.
  4. There will be early failures, which will usually be blamed on the language, but will result from factors like poor tools, misapplication of workstation technology to embedded platforms, or just bad engineering.
  5. The biggest obstacle standing in the way of successful deployment of is lack of skilled programmers.

Michael Gorlick: Crowd Control Means Software Engineering for the Masses (of Devices)
We are hard pressed to control the few devices on our desktop, much less rooms or buildings packed to the rafters with an ever-changing mixed population of devices spanning multiple orders of magnitude of size, power, communication bandwidth, computational speed, and storage capacity. The traditional techniques of hierarchical composition and loose coupling will serve us well here but are, by themselves, inadequate to the task.

The hint of a solution comes from a strange corner --- computer animation and interactive games. Advances in cognitive modeling allow animators and game designers to go beyond fixed behavioral models by governing what a character (device) knows, how the character (device) acquires that knowledge, and how the character (device) exploits that knowledge to plan actions. We hypothesize that a system engineer, equipped with a cognitive modeling language, can imbue devices with domain knowledge --- specified in terms of device actions, their necessary preconditions and their effects --- and then direct the devices' behaviors in terms of goals. Such a notion requires a dramatic rethinking of object engineering and the directed cooperation of multitudes of machines. We will highlight the formalisms that are required and reflect on their import.

Daniel Siewiorek : Functional Components in Mobile/Wearable Computing
The Pervasive Computing notion of getting the right information to the right person at the right time is especially critical for mobile workers. Carnegie Mellon University has been developing mobile and wearable applications for almost a decade. We have developed 20 systems, many of which have been evaluated in the field by end users. Our iterative, user-centered design approach has identified several functional capabilities that have repeatedly appeared in various combinations in different applications. One way of organizing these functions is by the time rate of change of information. An information change rate taxonomy will be presented along with the functions that support each member of the taxonomy. The functions will be illustrated by examples from end user applications.

Gaetano Borriello: Developing Distributed Applications
In a world of ubiquitous computing, there will be a very numerous and highly heterogeneous set of embedded devices. Each new device will have to be able to add its functions seamlessly and with no effort required of its owner. This is an incredible challenge to application developers. Their code will not only have to be distributed so as to meet demanding power and bandwidth limitations, but it will also have to deploy itself in highly varied and dynamic contexts. Ease of use will require the software to be self-organizing, self-monitoring, and self-repairing. New object technologies will be needed to write this new class of applications as the complexity of the low-level interactions is likely to be overwhelming. Developers will need to be able to snap together high-level components, simulate and verify their operation, and then exploit automatic code synthesis to fill in the details of the distributed objects' deployment and control/data coordination. We'll present a model for this high-level composition as well as outline the role of automatic synthesis in the context of the ubiquitous computing applications we are developing.

Return To Final Program || Return To Technical Program At A Glance

 OOPSLA'98 Home