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
|