PLoP 2002
Proceedings
Call for papers
Focus Topics
Paper Submissions
Schedule
Registration
Location
Call for Volunteers
All PLoPs


FOCUS TOPIC 1

PATTERNS AND PATTERN LANGUAGES FOR DISTRIBUTED REAL-TIME AND EMBEDDED SYSTEMS

GOAL

The goal of the proposed focused topic session is to discover and document common patterns among architectures of object-oriented distributed real-time and embedded (DRE) systems. As part of the session, the patterns will be interwoven to formulate a pattern language for OO DRE systems. The resulting pattern language will continue to be refined in future focus topic sessions at other PLoP and EuroPLoP conferences.

MOTIVATION

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. However, 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 recurring 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:

" State machines to model the activity of the system,
" Timers as communication timeouts and general control of action,
" Reactive behavior [POSA2] on I/O and timeout events,
" Half-synch/half-asynch communication patterns using prioritized queues,
" Messaging instead of synchronous communication between remote systems,
" Fault tolerance in order to avoid single point of failure, and
" Scheduling components to specify and enforce QoS properties[RTJ][GLS2001].

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,

" Conferences such as the Embedded Systems conference [EmbeddedSystems] focus primarily on real-time and somewhat on object-orientation.
" Conferences on object-orientation, such as OOPSLA or ECOOP, focus on object-orientation, but special domains, such as distributed and real-time systems have historically been de-emphasized.
" 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.

SUBMISSION REQUIREMENTS

The submission to the focused topic session 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 encouraged 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].

ORGANIZERS

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.

Douglas Schmidt <schmidt@uci.edu> (primary contact)

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.

Michael Kircher <Michael.Kircher@mchp.siemens.de>

Michael Kircher is currently working as a researcher in the Corporate Research of Siemens AG in Munich, Germany. His main fields of interest are distributed and real-time object computing, software architectures, design patterns, and eXtreme programming. He is also an active member of the Center for Distributed Object Computing at Washington University in Saint Louis. He holds a Masters degree in Computer Science from University of Stuttgart.

Prashant Jain <Prashant.Jain@mchp.siemens.de>

Prashant Jain is currently working as a researcher in the Corporate Research division of Siemens AG 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 Fujitsu Network Communications, Inc., and Kodak Health Imaging Systems, Inc.

Angelo Corsaro <corsaro@ece.uci.edu>

Angelo Corsaro is currently pursuing his Ph.D. in Computer Science in the Distributed Object Computing Lab. at the Department of Electrical and Computer Engineering at the University of California, Irvine. His main interest are related to scheduling problematics in realtime distributed systems, distributed computing, formal methods, design patterns, and soft-computing.

Chris Gill <cdgill@cs.wustl.edu>

Dr. Chris Gill is an Assistant Professor in the Computer Science Department at Washington University, St. Louis. His research focuses on middleware frameworks that support dynamic and adaptive resource management for DRE systems. He received his D.Sc. at Washington University in 2001.

REFERENCES

[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 (currently partially
implements the [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://www.cs.wustl.edu/~mk1/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://www.cs.wustl.edu/~mk1/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






PLoP is a trademark of The Hillside Group, Inc. Questions/comments to: webmaster.