Tuesday, 5 November 13:30-17:00 Afternoon Convention Ctr - Room 605
36 Patterns and Application Experiences for Real-time Object Request Brokers
Distributed, real-time, and embedded (DRE) applications are becoming increasingly widespread and important. Examples of DRE applications include telecommunication networks, e.g., wireless phone services, tele-medicine, e.g., remote surgery, manufacturing process automation, e.g., hot rolling mills, and defense systems, e.g., avionics mission computing systems. Although there are many types of DRE applications, they have one thing in common: the right answer delivered too late becomes the wrong answer.
This tutorial presents design challenges and solutions encountered when building DRE applications using Real-time CORBA middleware. The focus of the tutorial is on Real-time CORBA capabilities that allow DRE applications to configure and control the following resources:
Processor resources via thread pools, priority mechanisms and intraprocess mutexes
Communication resources via protocol properties and explicit bindings with non-multiplexed connections and
Memory resources, via buffering requests in queues and bounding the size of thread pools.
The examples in the tutorial are based on a widely used open-source object request broker (ORB) called TAO, which is a fully-functional Real-time CORBA ORB that illustrates key design patterns and OO programming idioms for developing DRE applications and middleware. The material presented in this tutorial appears in the books "Pattern-Oriented Software Architecture: Patterns for Concurrent and Distributed Objects", Wiley & Sons, 2000 and a series of columns published in C/C++ Users Journal with Steve Vinoski.
The tutorial is intended for software developers who are familiar with general object-oriented design and programming techniques (such as design patterns, modularity, and information hiding), fundamental OO programming language features (such as classes, inheritance, dynamic binding, and parameterized types), basic systems programming concepts (such as process/thread management, synchronization, and interprocess communication), and networking terminology (such as client/server architectures and TCP/IP). Some knowledge of CORBA is useful, but not essential.
Dr. Douglas C. 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 and real-time distributed object computing middleware on parallel processing platforms running over high-speed networks and embedded system interconnects. Dr. Schmidt is currently the Deputy Director and a Program Manager at the DARPA Information Technology Office (ITO), where he helps set the US IT research and development agenda on autonomous systems, network-centric systems, distributed real-time and embedded systems, and augmented cognition.