Over the past decade, I have led influential R&D efforts at the
University of California, Irvine; Washington University, St. Louis;
the Defense Advanced Projects Research Agency (DARPA); and Vanderbilt
University. In these efforts, I have conducted and managed pioneering
research on a range of topics, including patterns, optimization
techniques, and empirical analyses of software frameworks that
facilitate the development of quality of service (QoS)-enabled
middleware and model-driven development (MDD) techniques/tools for
distributed real-time and embedded (DRE) systems running over
high-speed networks and embedded system interconnects.
The research agenda throughout my career has involved:
- Conducting innovative research that created and refined core
middleware and MDD technologies, such as design formalisms, QoS
specification/enforcement techniques, end-to-end middleware
optimizations, and automated tools for specifying, analyzing, and
synthesizing software from higher-level models and
- Working in conjunction with colleagues in academia and
industry to demonstrate and mature middleware technologies in the
context of real-world mission- and life-critical DRE systems, such as
real-time avionics, missile defense, electronic medical imaging,
high-speed network management, distributed interactive simulations,
and teleconferencing.
I currently direct the Distributed Object Computing (DOC) group at the
Institute for Software Integrated Systems (ISIS) at Vanderbilt
University, which is internationally recognized as one of the leading
research groups on middleware platforms and MDD tools for DRE systems.
The research contributions of my work have involved:
- Developing innovative optimization techniques, middleware
frameworks and components, and MDD tools that can achieve
high-performance, low latency, and real-time predictability end-to-end
across high-speed networks and embedded interconnects.
- Discovering and formalizing patterns and pattern languages to
enhance the development and evolution of middleware and MDD tools to
meet the stringent QoS requirements of DRE systems.
- Identifying and alleviating key performance bottlenecks and
sources of priority inversion and non-determinism in middleware
platforms over local-area and wide-area networks.
The R&D efforts I have led have had a significant impact on academic
research and commercial practice. For example, I have published over
300 technical papers and books and am listed as the 135th most cited
computer scientist out of a population of 750,548 authors
(citeseer.ist.psu.edu/allcitedn.html). Scores of universities
throughout the world also use the middleware and MDD tools my research
group has developed as the basis for their research and teaching
efforts. Moreover, the middleware platforms and MDD tools developed
in my research group is used by thousands of developers in hundreds of
companies world-wide (including BBN, Boeing, Cisco, Ericsson, Kodak,
Lockheed Martin, Lucent, Motorola, NASA/JPL, Nokia, Nortel, Raytheon,
SAIC, Siemens, Sprint, and Telcordia) for a wide range of projects
(including telecommunications systems, medical imaging systems,
real-time avionic systems, and distributed interactive simulation
systems).
The remainder of this section describe my research goals and key
contributions in more depth, and cites representative examples of my
publications. I also summarize my research accomplishments during the
past decade.
Description of Research Goals and Contributions
My research on middleware and MDD has produced distributed services,
protocols,and tools that enable DRE systems to invoke operations on
target objects without concern for their location, language, operating
system, or hardware. Software for these types of applications must be
flexible, efficient, and predictable.
Flexibility is necessary to respond rapidly to application
requirements that span an increasingly wide range of media types and
traffic patterns. Efficiency and predictability are necessary to
support the QoS demands of performance-sensitive and time-sensitive
DRE systems.
Despite dramatic increases in the performance of networks and
computers, designing and implementing flexible, efficient, and
predictable DRE systems remains hard, and substantial time and effort
is required to develop and deploy these applications today. My
research has therefore focused on innovative techniques, patterns, and
MDD tools that have improved DRE system development by:
- Rigorously identifying middleware bottlenecks
and key sources of priority inversion and non-determinism
- Optimizing end-to-end middleware performance and
- Simplifying and automating middleware software development,
validation, and evolution.
My specific research goals and contributions are described below.
Rigorously identifying performance bottlenecks and sources of
priority inversion and non-determinism in middleware over high-speed
networks and embedded systems interconnects. We have developed and
employed middleware testbed environments to conduct extensive
experiments that systematically identify the performance bottlenecks
and sources of priority inversion and non-determinism in communication
middleware software on high-speed networks. The experiments in our
testbed have studied lower-level network programming
mechanisms, such as socket-based C interfaces and the C++
wrappers for sockets, and higher-level middleware, such as
Real-time CORBA, which is an open international standard for
distributed object computing that has been highly influenced by the
our R&D on patterns and middleware.
Our experiments on middleware performance have received widespread
recognition in academia and industry. As a direct result of the
analysis in our work, for instance, many CORBA suppliers have tuned
their ORB implementations to improve performance considerably. Thus,
the current generation of Real-time CORBA ORBs are now competitive
with hand-coded C/C++ TCP/IP implementations. This improvement is
important for performance-sensitive, mission-/life-critical DRE
application domains, such as real-time avionics and high-speed digital
imaging, where the use of higher-level middleware greatly decreases
development effort and increases system reliability and flexibility.
Papers published in top journals and conferences related to our
empirical studies of middleware performance include:
- Angelo Corsaro and Douglas C. Schmidt, ``The
Design and Performance of Real-time Java Middleware,'' Special Issue
on Middleware for the IEEE Transactions on Parallel and Distributed
Systems, Volume 14, Number 11, November 2003.
- Andy Gokhale and Douglas C. Schmidt,
``Measuring and Optimizing CORBA Latency and Scalability Over
High-speed Networks,'' IEEE Transactions on Computing, April,
1998.
- Aniruddha Gokhale and Douglas C. Schmidt,
``Measuring the Performance of Communication Middleware on High-Speed
Networks,'' Proceedings of SIGCOMM '96, ACM, San Francisco, August
28-30th, 1996.
Additional publications related to our middleware performance
experiments are available at
www.dre.vanderbilt.edu/~schmidt.
Developing innovative optimization techniques and DOC middleware
software that can achieve high-performance, low latency, and real-time
predictability end-to-end. Based on the result of our empirical
performance studies described above, we have developed middleware
optimization techniques that can yield highly efficient and
predictable Object Request Broker (ORB) implementations, without
sacrificing flexibility, reuse, or standards-conformance. We have
applied and demonstrated these optimization techniques in the context
of:
- ADAPTIVE Communication Environment (ACE), which is an
object-oriented toolkit containing frameworks and components that
implement key patterns for DRE systems.
- The ACE ORB (TAO), which is a high-performance, real-time
ORB targeted for DRE systems with hard and soft QoS requirements.
- The Component-Integrated ACE ORB (CIAO), which is a
real-time CORBA Component Model (CCM) implementation built on top of
TAO.
- ZEN, which is an implementation of Real-time CORBA
implemented using Real-time Java.
ACE, TAO, CIAO, and ZEN are open-source software that have been used
in thousands of DRE systems around the world. As a testament to our
prowess in technology transfer, many companies (including OCI,
OOMWorks, PrismTechnologies, Remedy, and Riverace) now provide
commercial support for ACE, TAO, CIAO, and ZEN using an open-source
business model.
The following is a synopsis of the key research contributions and
publications stemming from the ACE, TAO, CIAO, and ZEN projects:
- A real-time ORB Core that supports deterministic
scheduling and dispatching strategies. TAO's ORB Core concurrency
models are designed to minimize context switching, synchronization,
dynamic memory allocation, and data movement. TAO was the first
standards-based ORB with these capabilities. Papers published on this
topic include:
- Douglas C. Schmidt, Sumedh Mungee, Sergio
Flores-Gaitan, and Aniruddha Gokhale, ``Software Architectures for
Reducing Priority Inversion and Non-determinism in Real-time Object
Request Brokers,'' Journal of Real-time Systems, Kluwer,
Vol. 21, No. 2, 2001.
- Douglas C. Schmidt, ``Evaluating Architectures
for Multi-threaded CORBA Object Request Brokers,'' Communications
of the ACM, Special Issue on CORBA, ACM, edited by Krishnan
Seetharaman, Volume 41, No. 10, October 1998.
- An optimal active demultiplexing strategy that associates
client requests with target objects in constant time, regardless of
the number of objects and operations. TAO was also the first ORB with
these capabilities. Papers published on this topic include:
- Irfan Pyarali, Carlos O'Ryan, Douglas
C. Schmidt, Nanbor Wang, Vishal Kachroo, and Aniruddha Gokhale,
``Using Principle Patterns to Optimize Real-time ORBs,'' IEEE
Concurrency, Volumn 8, Number 1, January-March 2000.
- Andy Gokhale and Douglas C. Schmidt,
``Measuring and Optimizing CORBA Latency and Scalability Over
High-speed Networks,'' IEEE Transactions on Computing, April,
1998.
- A highly optimized CORBA IIOP protocol engine and a
highly optimizing IDL compiler that generates compiled and/or
interpreted stubs and skeletons, which enables applications to make
fine-grained time/space tradeoffs. Papers published on this topic
include:
- Alexander B. Arulanthu, Carlos O'Ryan, Douglas C. Schmidt,
Michael Kircher, and Jeff Parsons, ``The Design and Performance of a
Scalable ORB Architecture for CORBA Asynchronous Messaging,''
Proceedings of the IFIP/ACM Middleware 2000 Conference, Pallisades,
New York, April 3-7, 2000.
- Andy Gokhale and Douglas C. Schmidt, ``Optimizing a CORBA IIOP
Protocol Engine for Minimal Footprint Multimedia Systems,'' IEEE
Journal on Selected Areas in Communications special issue on Service
Enabling Platforms for Networked Multimedia Systems, September,
1999.
- Andy Gokhale and Douglas C. Schmidt,
``Techniques for Optimizing CORBA Middleware for Distributed Embedded
Systems'' Proceedings of INFOCOM '99, March 21-25th, New York, New
York.
- A real-time I/O subsystem that minimizes priority
inversion interrupt overhead over high-speed ATM networks and
real-time interconnects, such as VME. Papers published on this topic
include:
- Fred Kuhns, Douglas C. Schmidt, Carlos O'Ryan,
and David L. Levine, ``Supporting High-performance I/O in QoS-enabled
ORB Middleware,'' Cluster Computing: the Journal on Networks,
Software, and Applications, Volume 3, Number 3, 2000.
- Fred Kuhns, Douglas C. Schmidt, David Levine,
and Rajeev Bector, ``The Design and Performance of a Real-time I/O
Subsystem,'' Proceedings of the 5th IEEE Real-Time Technology and
Applications Symposium (RTAS99), Vancouver, British Columbia, Canada,
June 2-4, 1999.
- Real-time event and scheduling services that integrate the
capabilities of TAO described above to form the basis for
next-generation DRE systems for many research and commercial projects,
including Boeing, Cisco, Lockheed Martin, Raytheon, Siemens, and SAIC.
Papers published on this topic:
- Irfan Pyarali, Douglas C. Schmidt, and Ron Cytron,
``Techniques for Enhancing Real-time CORBA Quality of Service,'' the
IEEE Proceedings Special Issue on Real-time Systems,
co-editors Yann-Hang Lee and C. M. Krishna, Volume 91, Number 7, July
2003.
- Christopher D. Gill, Douglas C. Schmidt, and Ron Cytron,
``Multi-Paradigm Scheduling for Distributed Real-Time Embedded
Computing,'' IEEE Proceedings Special Issue on Modeling and
Design of Embedded Systems, Volume 91, Number 1, January, 2003.
- Chris Gill, David Levine, and Douglas
C. Schmidt, ``The Design and Performance of a Real-Time CORBA
Scheduling Service,'' The International Journal of Time-Critical
Computing Systems, special issue on Real-Time Middleware, guest
editor Wei Zhao, Volume 20, Number 2, March 2001.
- Douglas C. Schmidt, David Levine, and Sumedh Mungee, ``The Design
of the TAO Real-Time Object Request Broker,'' Computer
Communications, Special Issue on Building Quality of Service into
Distributed System, Elsevier Science, April, 1998.
- Tim Harrison and David Levine and Douglas
C. Schmidt, ``The Design and Performance of a Real-time CORBA Event
Service,'' Proceedings of OOPSLA '97, ACM, Atlanta, GA, October 1997.
Additional publications related to the ACE, TAO, CIAO, and ZEN
projects are available at
www.dre.vanderbilt.edu/~schmidt.
Discovering and documenting patterns to simplify the development
and evolution of middleware and applications for DRE systems.
Achieving widespread reuse of middleware requires a concerted focus on
the core patterns that underlie middleware and applications.
Patterns formalize design expertise and articulate time-proven
solutions to forces and problems that arise when developing software.
Patterns also aid the development of middleware and applications by
expressing the structure and collaboration of components at a level
higher than source code or software design models that focus on
individual functions, objects, and classes.
During the development of ACE, TAO, CIAO, and ZEN, my research group
identified and captured a pattern language of essential
middleware patterns for concurrency and networked collaboration.
These patterns include the Acceptor-Connector, Active
Object, Asynchronous Completion Token, Component
Configurator, Double-Checked Locking Optimization,
Extension Interface, Half-Sync/Half-Async,
Interceptor, Leader/Followers, Monitor
Object, Proactor, Reactor, Scoped
Locking, Strategized Locking, Thread-Safe
Interface, Thread-Specific Storage, and Wrapper
Facade. Our experience applying these patterns throughout ACE
and TAO illustrates their importance in generating flexible,
efficient, and predictable middleware and application software
architectures for DRE systems.
Discovering, articulating, and implementing the key patterns via ACE,
TAO, CIAO, and ZEN enabled us to develop middleware that can support
applications with statistical, e.g., multimedia applications, and
deterministic, e.g., avionics flight and mission control systems, QoS
requirements. When these patterns are reified into reusable software
frameworks and components, they yield middleware that is considerably
more efficient and predictable than is possible using existing
middleware technologies. In particular, patterns facilitate reuse of
middleware when other forms of reuse are infeasible, e.g., due to
fundamental differences in operating system mechanisms or programming
language features.
Publications related to this topic as part of our R&D activities
include:
- Douglas C. Schmidt, Michael Stal, Hans Rohert,
and Frank Buschmann, Pattern-Oriented Software Architecture:
Patterns for Concurrent and Networked Objects, John Wiley and Sons,
2000.
- Douglas C. Schmidt, David L. Levine, and Chris
Cleeland, ``Architectures and Patterns for High-performance, Real-time
CORBA Object Request Brokers,'' Advances in Computers, Academic
Press, Ed., Marvin Zelkowitz, Volume 48, July 1999.
- Douglas C. Schmidt and Chris Cleeland,
``Applying Patterns to Develop Extensible and Maintainable ORB
Middleware,'' IEEE Communications, April, 1999.
- Douglas C. Schmidt, ``Experience Using Design
Patterns to Develop Reuseable Object-Oriented Communication
Software,'' Communications of the ACM Special Issue on
Object-Oriented Experiences, ACM, Vol. 38, No. 10, October, 1995, pp
65--74.
Additional publications related to patterns documented from the ACE,
TAO, CIAO, and ZEN projects are available at
www.dre.vanderbilt.edu/~schmidt.
Creating and validating model-driven development techniques and
tools. Despite advances in middleware technologies, key challenges
must be overcome to create and validate mission-critical DRE systems
effectively and productively. For example, developers of DRE systems
continue to use ad hoc means to select and compose their
applications and middleware due to the lack of formally analyzable and
verifiable building block components. To address these issues, we
have created model-driven development (MDD) techniques and tools can
be used to specify, analyze, optimize, synthesize, validate, and
deploy middleware platforms and applications that can meet the needs
of mission-critical DRE systems. MDD is an emerging paradigm that
combines
- Metamodeling, which define type systems that precisely
express key characteristics and constraints associated with particular
DRE system application domains, such as software defined radios,
avionics mission computing, and total ship computing environments.
- Domain-specific modeling languages (DSMLs), which provide
programming notations that formalize the process of specifying
application logic and quality of service (QoS)-related requirements in
DRE systems.
- Model transformations and code generation that automate and
ensure the consistency of software implementations with analysis
information associated with functional and QoS requirements captured
by models of DRE system structure and behavior.
Our work on MDD technologies has focused on CoSMIC, which is an
open-source toolsuite containing an integrated set of MDD tools that
address key lifecycle development challenges of DRE middleware and
applications, such as modeling of DRE system deployment and
configuration capabilities, their QoS requirements, and QoS adaptation
policies used for DRE system QoS management. The CoSMIC tools enable
developers of DRE systems to specify, develop, compose, and integrate
application and middleware software.
Publications related to CoSMIC as part of our R&D activities include:
- Arvind S. Krishna, Emre Turkay, Aniruddha
Gokhale, and Douglas C. Schmidt, Model-Driven Techniques for
Evaluating the QoS of Middleware Configurations for DRE Systems,
Proceedings of the 11th IEEE Real-Time and Embedded Technology and
Applications Symposium, San Francisco, CA, March 2005.
- Krishnakumar Balasubramanian, Jaiganesh
Balasubramanian, Jeff Parsons, Aniruddha Gokhale, and Douglas
C. Schmidt, ``A Platform-Independent Component Modeling Language for
Distributed Real-time and Embedded Systems,'' Proceedings of the 11th
IEEE Real-Time and Embedded Technology and Applications Symposium, San
Francisco, CA, March 2005.
- George Edwards, Gan Deng, Douglas C. Schmidt,
Anirudda Gokhale, and Balachandran Natarajan, ``Model-driven
Configuration and Deployment of Component Middleware
Publisher/Subscriber Services,'' Proceedings of the 3rd ACM
International Conference on Generative Programming and Component
Engineering, Vancouver, CA, October 2004.
- Aniruddha Gokhale, Krishnakumar
Balasubramanian, Jaiganesh Balasubramanian, Arvind Krishna, and George
T. Edwards, Gan Deng, Emre Turkay, Jeffrey Parsons, and Douglas
C. Schmidt, Model Driven Middleware: A New Paradigm for Deploying and
Provisioning Distributed Real-time and Embedded Applications, Elsevier
Journal of Science of Computer Programming: Special Issue on
Model Driven Architecture, Edited by Mehmet Aksit, 2004.
Additional publications related the MDD efforts on the CoSMIC project
are available at www.dre.vanderbilt.edu/~schmidt.