OOPSLA 2001 Workshop
Marriott Hotel, Tampa Bay, Florida/USA, October 14th
Towards Patterns and Pattern Languages for OO Distributed Real-time and
Embedded Systems
Submissions
Agenda with downloadable presentations
Next steps
Topics for workshop discussion
Call For Papers - OOPSLA 2001
Pictures
Motivation
Over the past several years there has
been a dramatic increase in the demand for distributed real-time and embedded
(DRE) systems. Demand is increasing not just in market of aerospace applications,
but also in commercial markets, such as telecommunication, automotive,
and process automation. In these markets, project-specific, proprietary
embedded hardware is largely being replaced with commodity-off-the-shelf
(COTS) integrated circuitry. Traditionally, this hardware has been controlled
using custom/proprietary software to satisfy the 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 ensure end-to-end system QoS properties and to control lifecycle
costs. Object-oriented (OO) technologies, which have long been useful in
complex non-real-time systems, are increasingly being considered for use
in DRE systems. Thus, along with the trend of replacing proprietary hardware
with new hardware and software, there is a trend towards applying OO technologies
for DRE systems to replace legacy technologies, such as the C programming
language and proprietary communication 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 [OMG2000]. Implementations of Real-time CORBA have been used successfully
q in a variety of commercial and military DRE systems. However, despite
the hype has appeared the commercial software industry and trade press,
it's surprisingly 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 empirically. Therefore,
researchers and practitioners interested in these technologies have 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 solutions are re-developed
repeatedly. The forces to those problems are often similar, particularly
now that many systems are developed using OO technologies. In this context,
discovering and applying *patterns* to document proven solutions to these
re-occuring problems has become essential. Patterns derived from conventional
software designs are often not appropriate for DRE systems, however, since
special constraints exist on memory usage, performance, and predictability
of the solutions. It is the intent of this workshop to help fill this gap.
Based on our collective experience building
many OO DRE systems, we recognized that our solutions 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.
-
Scheduling components, to specify and enforce QoS properties.
The idea of documenting best practices
as patterns is not new, others [EmbeddedSystems] have also found the need
for documenting them in designing OO real-time systems [Doug1999]. What
makes this workshop unique, however, is the fact that it aims to leverage
the confluence of recent advances in the distributed systems [POSA2], embedded
and real-time [Liu2000][Sun2001], OO, and patterns communities [NoWe2000][POSA].
Unfortunately, existing communities focus very often only on one or two
of these areas, e.g.
-
Conferences such as the Embedded Systems conference [EmbeddedSystems] focuses
on real-time and 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 omitted.
-
Conferences on patterns, such as PLoP or EuroPLoP, emphasize on patterns,
especially object-orientation, but not on particular problem domains.
With this workshop we plan to bring together
researchers and practitioners from all those areas to come up with a common
understanding about software designs that are proved to work in the field
of OO DRE systems. The form in which we want to document that experience
is the form of a pattern language, which are typically written with two
different motivations:
-
to document a set of related, interwoven patterns, or
-
to document best practices of one distinct domain.
Much of the existing work on pattern languages
has focused on the former motivation. We think that the latter is at least
as important as the former. We therefore plan to document the best practices
of OO DRE systems development as a pattern language.
Goal
In this workshop we will bring together researchers
and
practitioners to lay the groundwork for a common understanding about software
designs that are proven to work in the domain
of OO DRE systems. The goal of this workshop is to identify and document
common patterns
among architectures of OO DRE systems. The
patterns, interwoven as they are, will be used as the basis for our long-term
goal: the
creation of a pattern language for OO DRE
systems.
Submission Requirements
Anyone interested in participating in
the workshop should submit a position paper by August 17, 2001. Participants
should be familiar with the development of OO DRE systems, especially with
the constraints and forces prevailing in such systems. In addition,
they should have a basic understanding of architecture and design patterns
in the context of OO DRE systems.
Participants must submit a position paper of around 4 pages that's
presented in one of the following formats (in the order of preference):
-
A description of how the participant envisions the pattern language for
DRE systems.
-
A description of a important pattern in a DRE application domain, such
as telecom, aerospace, process automation, or vehtronics.
-
A description of how the participant has used patterns in the past to develop
OO DRE systems.
Submissions should be sent electronically
as either PDF, PS or MS Word document to the following e-mail address:
Michael.Kircher@mchp.siemens.de
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.
Activities
On the day of the workshop we expect that
the participants present their position papers in the morning. In the afternoon
we will discuss about how the individual patterns and pattern languages
can be combined to a pattern language documenting best practices in OO
DRE system design.
A short introduction into the topic of
object-oriented real-time systems is given by Dr. Douglas C. Schmidt, whose
pioneering work on patterns and frameworks for OO DRE middleware has been
applied in hundreds of production DRE systems worldwide.
The outcome, the pattern language, is
expected to be refined in futher workshops at conferences such as Pattern
Language of Programs (PLoP), European Pattern Language of Programs (EuroPLoP)
and Conference on Object Oriented Technologies and Systems (COOTS).
The outcome, the pattern language, is
expected to be refined in futher workshops, especially in writer's workshops
at conferences such as PLoP, and EuroPLoP.
Organizers
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 Centre for Distributed Object Computing at
Washington University in Saint Louis, which was formerly lead by Dr. Douglas
Schmidt and now by Dr. David Levine. He holds a Masters degree in Computer
Science from University of Stuttgart.
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
professional experience includes working as a software engineer for companies
like 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.
Dr. Douglas Schmidt is an Associate Professor in the Electrical
and Computer Engineering department at the University of California, Irvine.
He is currently serving as a Program Manager at the DARPA Information Technology
Office (ITO), where he is leading the national effort on distributed real-time
and embedded middleware research. 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.
Angelo Corsaro is currently pursuing his PhD in Computer Science
in the Distributed Computing Lab. at the Department of Computer Science
of the Washingtonat University, St. Louis. His main interest are related
to scheduling problematics in realtime distributed systems, distributed
computing, formal methods, design patterns, and soft-computing.
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
[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, Kirthika Parameswaran,
The Jini Pattern Language Workshop, OOPSLA 2000, Minneapolis, October,
2000, http://posa3.org/workshops/AdHocNetworking
[Liu2000] J. W. Liu, Real-Time Systems, Prentice
Hall, 2000
[NoWe2000] J. Noble, and C. Weir, Small Memory
Software, Addison-Wesley, 2000
[OMG2000] Object Management Group, Real Time-CORBA
specification, 2000
[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