OOPSLA 2002 workshop

Washington State Convention and Trade Center, Seattle, Washington, USA

Tuesday, November 5, 2002

Patterns in Distributed Real-Time and Embedded Systems



Over the past five years there has been a dramatic increase in the demand for distributed real-time and embedded (DRE) systems. Demand is increasing not just in traditional DRE domains, such as aerospace and defense, but also in commercial domains, such as telecom, automotive, and process automation.

In these domains, project-specific, proprietary embedded hardware is largely being replaced with commercial-off-the-shelf (COTS) integrated circuitry. Traditionally, embedded hardware has been controlled using custom software to satisfy system quality of service (QoS) constraints, such as latency, jitter, and timing deadlines.

As the software for these systems becomes increasingly complex, however, better software development technologies are needed to enforce end-to-end system QoS properties and to control lifecycle costs. Object-oriented (OO) technologies, which have long been useful in complex software systems, are increasingly being applied to DRE systems. Thus, along with the trend of replacing proprietary hardware with COTS hardware, there is a trend towards applying OO technologies for DRE systems to replace legacy technologies, such as the C programming language and proprietary communication service and protocols, that are tedious, error-prone, and costly to develop, validate, and maintain.

Some of the examples where OO technologies have been applied to DRE systems include the latest specifications for Real-time Java [RTJ][DRTJ][IBM2001], Real-time UML [Doug1998], and Real-time CORBA [OMG2001]. Implementations of Real-time CORBA have been used successfully in a variety of commercial and military DRE systems. Hoewever, despite the hype that has appeared in the commercial software industry and trade press, it's hard to find solid technical material on the real strengths and weaknesses of OO technologies for DRE systems. As a result, these technologies have been "sold" more than they have been examined. Researchers and practitioners interested in these technologies have therefore had few opportunities to evaluate the promise and the challenges that OO DRE principles, methods, and tools provide.

Many problems that must be solved in DRE systems occur in every project and many of the solutions are re-developed repeatedly. The forces to those problems are often similar, particularly since many systems are developed using OO technologies. In this context, it becomes essential to discover and apply *patterns* to document proven solutions to these re-occuring problems, and *pattern languages* to address diverse and possibly competing design forces and achieve integrated capabilities such as real-time and fault-tolerant behavior.

Using Patterns and Pattern Languages

Patterns derived from conventional software designs are often not appropriate for DRE systems since special constraints exist on memory usage, performance, and predictability of the solutions. It is the intent of this focus topic session to help fill this gap.

Based on our collective experience building OO DRE systems over many years, we recognized that our solutions to the problems in DRE systems had many commonalities, such as architectures that applied:

The idea of documenting best practices as patterns in building OO DRE systems is not new. Others [EmbeddedSystems] have also found the need for documenting the best practices in designing OO real-time systems [Doug1999]. What makes this focus topic session relevant and timely, however, is the fact that it aims to leverage the confluence of recent advances in patterns for concurrent and networked systems [Lea99][POSA][POSA2] and embedded and real-time systems [Liu2000][Sun2001][NoWe2000]. Unfortunately, existing communities and conferences often focus on only one or two of these areas. For example, With this focus topic session, we plan to bring together researchers and practitioners from the distributed, real-time, and embedded areas to discern a common understanding about software designs that have proven effective in the field of OO DRE systems. The form in which we plan to document the experience of the participants is in the form of a pattern language. Pattern Languages are typically written with two different motivations:

1) To document a set of related, interwoven patterns, or

2) To document best practices of one distinct domain.

Existing work on pattern languages has focused largely on the first motivation. We feel that the second motivation is also important and therefore plan to document the best practices of OO DRE systems development as a pattern language.


The goal of the proposed workshop is to discover and document common patterns among architectures of object-oriented distributed real-time and embedded (DRE) systems. The workshop is a continuation of a similar workshop that was held at last year's OOPSLA. There was a strong consensus among the participants that a follow-up workshop was needed to build on the results of last year's workshop.

Submission Requirements

The submission to the workshop should be one or more DRE-related patterns written in patterns form. Based on the experience that we have had in our previous workshops, we have seen that experts in DRE computing may not be familiar with documenting patterns in patterns form. We therefore suggest that writers use one of the common pattern formats to ensure all aspects of their pattern(s) are covered. Whether the aspects are covered in a sufficient manner will be shepherded in advance. Writers are strongly encuraged to use a well-known and recognized form of pattern template, such as the POSA format as described in [POSA](chapter 1) and used in [POSA2], or any of the formats described in [Hillside2002].

Participants must submit a position paper of around 4 pages describing an important pattern or pattern languagein a DRE application domain, such as telecom, aerospace, process automation, or vehtronics.

Submissions should be sent electronically as either PDF, PS or MS Word document to the following e-mail address:

In case you have any questions regarding the workshop, send e-mail to that address as well.
For the workshop we expect the participants to prepare a 10-15 minute presentation about the content of their position paper. Position papers will be selected by the organizers based on relevance and quality of the position paper.

Important Dates

Submissions due: Monday, September 30, 2002

Notification of acceptance: Monday, October 14, 2002


Members of our proposal team have successfully led previous pattern-related workshops, including "Patterns and Pattern Languages for OO Distributed Real-time and Embedded Systems" at OOPSLA '01 [KJSC2001], "The Jini Pattern Language"[KJP2000] at OOPSLA 2000, and the workshop on "Design Patterns for Concurrent, Parallel, and Distributed OO Systems" at OOPSLA '95.

Michael Kircher

Michael Kircher is currently working as Senior Software Engineer at Siemens AG Corporate Technology in Munich, Germany. His main fields of interest include distributed object computing, software architectures, design patterns, Extreme Programming, and management of knowledge workers in innovative environments.

Prashant Jain

Prashant Jain is currently working as a Member of Consulting Staff at Manystreams, Inc. in Delhi, India. He holds a Masters degree in Computer Science from Washington University in St. Louis, U.S.A. His main fields of interest include distributed systems, design patterns and eXtreme programming. His professional experience includes working as a software engineer for companies including Siemens AG, Fujitsu Network Communications, Inc., and Kodak Health Imaging Systems, Inc. He has also been actively involved in the Centre for Distributed Object Computing formerly headed by Dr. Douglas Schmidt at Washington University.

Doug Schmidt

Dr. Douglas Schmidt is an Associate Professor in the Electrical and Computer Engineering department at the University of California, Irvine. His research focuses on patterns, optimization principles, and empirical analyses of object-oriented techniques that facilitate the development of high-performance, real-time distributed object computing middleware on parallel processing platforms running over high-speed networks and embedded system interconnects.

Andy Gokhale

Aniruddha (Andy) Gokhale did his Bachelors of Engineering (BE, Computer Engineering) from Pune University, India in 1989; Masters of Science (MS, Computer Science) from Arizona State University, Tempe, AZ in 1992; and Doctor of Science (D.Sc, Computer Science) from Washington University, St, Louis, MO in 1998. He was with Bell Laboratories, Lucent Technologies in Murray Hill and Holmdel, NJ since 1998. In Jan 2002, he started working as a Research Scientist at ISIS, Vanderbilt University. He continues to collaborate with researchers at Bell Labs on network QoS management and Web services. His research areas include real-time and fault tolerant CORBA middleware, and quality of service and provisioning issues in computer networks.


[Doug1998]  B. P. Douglass, Real-Time UML: Developing Efficient Objects for Embedded Systems, Addison-Wesley, 1998 [Doug1999] B. P. Douglass, Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns, Addison-Wesley, 1999

[DRTJ] Distributed Real-Time Java Specification, http://pitfall.mitre.org/ [EmbeddedSystems] Embedded Systems Conferences, http://www.esconline.com, 2000

[GLS2001] Christopher D. Gill, David L. Levine, and Douglas C. Schmidt, The Design and Performance of a Real-Time CORBA Scheduling Service, Real-Time Systems, The International Journal of Time-Critical Computing Systems, special issue on Real-Time Middleware, Wei Zhao, ed., Kluwer Academic Publishers, 2001, March, 20(2).

[Hillside2002] http://hillside.net/patterns/writing/writingpatterns.htm, 2002

[IBM2001] IBM, Real-Time Java implementation J9, 2001

[RTJ]), http://www.embedded.oti.com/, 2001

[JCRTJ] J-Consortium, Real Time Java Specification, http://ww.j-consortium.com/, 2000

[KJP2000] M. Kircher, P. Jain, and K. Parameswaran, The Jini Pattern Language Workshop, OOPSLA 2000, Minneapolis, October, 2000, http://posa3.org/workshops/AdHocNetworking

[KJSC2001] M. Kircher, P. Jain, D. Schmidt, and A. Corsaro, Workshop - Towards Patterns and Pattern Languages for OO Distributed Real-time and Embedded Systems, OOPSLA 2001, Tampa Bay, Florida, USA, October 14-18, 2001, http://posa3.org/workshops/RealTimePatterns

[Lea99] Doug Lea, Concurrent Java: Design Principles and Patterns, Second Edition, Addison-Wesley, 1999.

[Liu2000] J. W. Liu, Real-Time Systems, Prentice Hall, 2000

[NoWe2000] J. Noble, and C. Weir, Small Memory Software, Addison-Wesley, 2000

[OMG2001] Object Management Group, CORBA 2.5 specification, 2001

[POSA] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerland and M. Stal, Pattern-Oriented Software Architecture: A System of Patterns,John Wiley and Sons, 1996

[POSA2] D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann, Pattern-Oriented Software Architecture: Patterns for Concurrent and Distributed Objects, John Wiley and Sons, 2000

[RTJ] Realtime for Java Expert Group, RT-Java specification, http://www.rtj.org/, http://java.sun.com/aboutJava/communityprocess/first/jsr001/

[Schm2001] D. C. Schmidt, The ACE ORB, http://www.cs.wustl.edu/~schmidt/TAO.html [Sun2001] Sun Microsystems, Scalable Real-Time Computing in the Solaris (TM) Operating Environment, http://www.sun.com/software/white-papers/wp-realtime, 2001